Function at 0x44f6e4
Capabilities:
Encode data using base64
Get disk information
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x640
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0x80], ecx
call fcn.0042ebab
pop ecx
push 5
lea ecx, [ebp + 8]
call fcn.00433c42
push 0x14
lea ecx, [ebp - 0x16c]
call fcn.00433c42
lea ecx, [ebp - 0xb0]
call fcn.00433c24
lea ecx, [ebp - 0x70]
call fcn.00433c24
lea ecx, [ebp - 0x5c]
call fcn.00433c24
mov eax, dword [ebp + 0x78]
or ebx, 0xffffffff
mov dword [ebp + 4], eax
push 0x2c
lea eax, [ebp - 0x70]
push eax
xor esi, esi
lea eax, [ebp + 4]
push eax
mov dword [ebp - 4], 0xfffc0000
mov dword [ebp + 0x60], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
mov byte [ebp - 0x15], 0
mov byte [ebp + 2], 0
mov byte [ebp - 0x5d], 0
mov byte [ebp - 0x47], 0
mov byte [ebp + 0x47], 0
mov byte [ebp + 0x1f], 0
mov byte [ebp], 0
mov byte [ebp - 0x46], 0
mov dword [ebp - 0x6c], esi
call fcn.004364f8
mov eax, dword [ebp - 0x70]
mov word [eax], si
mov eax, dword [ebp + 4]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x44f7e3
mov word [eax], si
inc eax
inc eax
mov dword [ebp + 4], eax
push 0x2c
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 4]
push eax
call fcn.004364f8
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], si
mov byte [ebp + 0x3a], 0
mov byte [ebp + 0x52], 0
mov byte [ebp - 0x5e], 0
mov byte [ebp + 0x2f], 0
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x55], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x6b], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x5d], 0
mov byte [ebp + 0x51], 0
mov byte [ebp - 0x16], 0
mov byte [ebp + 1], 0
mov dword [ebp - 0x74], esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x20], esi
mov byte [ebp - 0x78], 0
mov dword [ebp + 0x20], 0xfffff000
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x84], ebx
je 0x44ffaf
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f86c
or byte [ebp + 0x3a], 1
jmp 0x44ff3d
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f88c
or byte [ebp + 0x3a], 2
jmp 0x44ff3d
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f8af
or byte [ebp - 0xde], 1
jmp 0x44ff3d
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f8d2
or byte [ebp - 0xde], 2
jmp 0x44ff3d
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.00435950
add esp, 0xc
test al, al
jne 0x44ff69
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.00435950
add esp, 0xc
test al, al
jne 0x44ff3d
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f928
or dword [ebp - 0x20], 1
jmp 0x44ff3d
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f94a
or dword [ebp - 0x20], 2
jmp 0x44ff3d
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49700c
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f96a
or dword [ebp - 0x20], 0x10
jmp 0x44ff3d
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f989
or dword [ebp - 0x20], edi
jmp 0x44ff3d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x497000
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f9a9
mov byte [ebp + 0x5f], 1
jmp 0x44ff3d
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f9c8
mov byte [ebp + 0x5d], 1
jmp 0x44ff3d
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.00435950
add esp, 0xc
test al, al
je 0x44f9e8
mov byte [ebp + 0x5d], 0x21
jmp 0x44ff3d
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fa07
mov byte [ebp + 0x51], 1
jmp 0x44ff3d
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fa26
mov byte [ebp - 0x47], 1
jmp 0x44ff3d
push edi
lea eax, [ebp + 0x78]
push eax
push 0x496fd8
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fa45
mov byte [ebp - 0x16], 1
jmp 0x44ff3d
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49327c
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fa65
mov byte [ebp - 0x5d], 1
jmp 0x44ff3d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x496fd4
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fa85
mov byte [ebp - 0x46], 1
jmp 0x44ff3d
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.00435950
add esp, 0xc
test al, al
je 0x44faa5
or byte [ebp], 0x40
jmp 0x44ff3d
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fac5
mov byte [ebp + 0x1f], 1
jmp 0x44ff3d
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fae5
mov byte [ebp + 0x1f], 0xff
jmp 0x44ff3d
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x496fb4
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fb68
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x44fb18
cmp ax, 0x3d
je 0x44fb18
call fcn.00402b47
test al, al
je 0x44fb68
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp + 0xc], esi
je 0x44fb2d
mov dword [ebp - 0x74], 0x496fac
jmp 0x44fb59
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
mov eax, dword [eax]
mov dword [ebp - 0x74], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00404167
mov eax, dword [ebp + 0x78]
cmp word [eax], si
pop ecx
pop ecx
je 0x44fb59
mov word [eax], si
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
pop ecx
jmp 0x44ff3d
push 4
push edi
push str._pbr
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fbca
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x44fb98
cmp ax, 0x3d
je 0x44fb98
call fcn.00402b47
test al, al
je 0x44fbca
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x74], esi
push eax
je 0x44fbb7
mov dword [ebp + 0xc], 0x4906be
call fcn.00404167
pop ecx
jmp 0x44fb59
add dword [ebp + 0x78], 2
call fcn.0042ebab
mov eax, dword [eax]
mov dword [ebp + 0xc], eax
jmp 0x44fb3f
push 9
push edi
push str._alignend
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fc51
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x44fbfa
cmp ax, 0x3d
je 0x44fbfa
call fcn.00402b47
test al, al
je 0x44fc51
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x44fc42
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x44ff21
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 8], ecx
call fcn.004385d3
cmp dword [ebp - 0x38], esi
pop ecx
pop ecx
jg 0x44ff21
jl 0x44fc42
cmp dword [ebp - 0x3c], esi
ja 0x44ff21
mov dword [ebp - 0x3c], 0xfffffffe
mov dword [ebp - 0x38], ebx
jmp 0x44ff21
push 6
push edi
push str._align
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fcee
add edi, 0xc
xor eax, eax
mov ax, word [edi]
cmp ax, si
je 0x44fc85
cmp ax, 0x3d
je 0x44fc85
call fcn.00402b47
test al, al
je 0x44fcee
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edi
call fcn.00404167
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x44fcad
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
jmp 0x44ff3d
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x44ff3d
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 8], ecx
call fcn.004385d3
cmp dword [ebp - 0x4c], esi
pop ecx
pop ecx
jg 0x44ff3d
jl 0x44fca2
cmp dword [ebp - 0x50], esi
ja 0x44ff3d
jmp 0x44fca2
push 6
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fd0e
mov byte [ebp - 0x5e], 1
jmp 0x44ff3d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x492140
call fcn.00435950
add esp, 0xc
test al, al
jne 0x44ff39
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.00435950
add esp, 0xc
test al, al
jne 0x44ff39
push edi
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fd69
or dword [ebp - 0x20], 0x20
mov byte [ebp - 0x17], 1
jmp 0x44ff3d
push 6
push dword [ebp + 0x78]
push str._swap:
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fdaf
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004369c5
test eax, eax
pop ecx
pop ecx
jl 0x44fda5
cmp dword [ebp + 0x20], 1
jl 0x44fda5
cmp dword [ebp + 0x20], edi
jle 0x44ff3d
mov esi, 0x80070057
jmp 0x453091
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fe4e
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x48], edi
call fcn.0040418b
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00433834
add esp, 0xc
test al, al
je 0x44fe09
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.004385d3
pop ecx
pop ecx
mov eax, dword [ebp + 0x48]
cmp word [eax], 0x3a
jne 0x44fe28
add dword [ebp + 0x48], 2
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.004385d3
pop ecx
pop ecx
mov eax, dword [ebp + 0x48]
cmp word [eax], 0x3a
jne 0x44ff3d
add dword [ebp + 0x48], 2
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.004385d3
jmp 0x44ff33
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.0042fae7
add esp, 0xc
test al, al
jne 0x44ff49
push 6
push dword [ebp + 0x78]
push str._SKIP
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fead
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x24], 0x42
call fcn.004369c5
mov al, byte [ebp - 0x24]
add esp, 0xc
mov byte [ebp - 0x78], al
jmp 0x44ff3d
push edi
push dword [ebp + 0x78]
push str._iv
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44fed8
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004369c5
jmp 0x44ff33
push 6
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.00435950
add esp, 0xc
test al, al
je 0x44fef8
mov dword [ebp - 0x6c], 8
jmp 0x44ff3d
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.00435950
add esp, 0xc
test al, al
je 0x44ff18
mov dword [ebp - 0x6c], 0x10
jmp 0x44ff3d
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x44ff49
lea eax, [ebp + 0x78]
push eax
call fcn.00404167
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
pop ecx
jmp 0x44fb62
mov byte [ebp + 0x2f], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], si
jne 0x44f84c
cmp dword [ebp - 0x3c], 0xfffffffe
jne 0x44ffa4
cmp dword [ebp - 0x38], ebx
jne 0x44ffa4
mov eax, dword [ebp - 0x50]
cmp eax, 0xfffffff7
jne 0x44ff9b
cmp dword [ebp - 0x4c], ebx
jne 0x44ff9b
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
jmp 0x44ffaf
push str.21:INDATA
lea ecx, [ebp - 0x78]
call fcn.0043ddc9
push dword [ebp + 0x78]
lea ecx, [ebp - 0x78]
call fcn.00433c92
push dword [ebp - 0x78]
mov ecx, dword [ebp - 0x80]
call fcn.0042065b
lea ecx, [ebp - 0x78]
mov esi, eax
call fcn.0042eb98
jmp 0x453091
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x50], 0xfffffff7
jne 0x44ffb9
cmp dword [ebp - 0x4c], ebx
jne 0x44ffb9
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x4c], esi
cmp dword [ebp - 0x3c], 0xfffffff7
jne 0x44ffd0
cmp dword [ebp - 0x38], ebx
jne 0x44ffd0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x496f30
call fcn.00435950
add esp, 0xc
test al, al
je 0x4500ab
push edi
lea eax, [ebp + 0x78]
push eax
push 0x496f28
call fcn.00435950
add esp, 0xc
test al, al
je 0x45000c
mov byte [ebp + 0x52], 1
jmp 0x4500ab
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.00435950
add esp, 0xc
test al, al
je 0x45002b
mov byte [ebp + 0x52], 2
jmp 0x4500ab
push 3
lea eax, [ebp + 0x78]
push eax
push 0x496f1c
call fcn.00435950
add esp, 0xc
test al, al
je 0x450048
mov byte [ebp + 0x52], 3
jmp 0x4500ab
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.00435950
add esp, 0xc
test al, al
je 0x45006c
mov byte [ebp + 0x52], 4
mov dword [ebp - 0x6c], 8
jmp 0x4500ab
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.00435950
add esp, 0xc
test al, al
je 0x450090
mov byte [ebp + 0x52], 5
mov dword [ebp - 0x6c], 0x10
jmp 0x4500ab
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.00435950
add esp, 0xc
test al, al
je 0x4500ab
mov byte [ebp + 0x52], 6
push edi
lea eax, [ebp + 0x78]
push eax
push 0x496efc
mov byte [ebp + 0x2e], 0
call fcn.00435950
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x4500cf
mov byte [ebp + 0x47], 1
mov dword [ebp + 0x60], edi
push 6
lea eax, [ebp + 0x78]
push eax
push 0x496ef4
call fcn.00435950
add esp, 0xc
test al, al
je 0x4500ed
mov byte [ebp + 0x2e], 1
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.00435950
add esp, 0xc
test al, al
je 0x45010b
mov byte [ebp + 0x2e], 0x10
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00404167
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xb0]
call fcn.00433d4a
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x450152
mov dword [ebp - 0x7c], 0x80
jmp 0x450169
cmp ax, 0x2d
jne 0x450173
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x450173
mov dword [ebp - 0x7c], esi
lea eax, [ebp + 0x78]
push eax
call fcn.00404167
pop ecx
xor eax, eax
mov dword [ebp - 0x1c0], esi
lea edi, [ebp - 0x1bc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x4a7254
mov dword [ebp - 0x154], 0xebd0a0a2
mov word [ebp - 0x150], 0xb9e5
mov word [ebp - 0x14e], 0x4433
mov byte [ebp - 0x14c], 0x87
mov byte [ebp - 0x14b], 0xc0
mov byte [ebp - 0x14a], 0x68
mov byte [ebp - 0x149], 0xb6
mov byte [ebp - 0x148], 0xb7
mov byte [ebp - 0x147], 0x26
mov byte [ebp - 0x146], 0x99
mov byte [ebp - 0x145], 0xc7
stosd dword es:[edi], eax
mov dword [ebp - 0x188], esi
mov dword [ebp - 0x184], esi
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x104], str.MS_Basic_Data
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x120], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x51], 0
jne 0x45025b
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004369c5
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x450286
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.00433834
add esp, 4
test al, al
jne 0x450286
mov ecx, edx
mov byte [ebp - 0x55], 1
mov dword [ebp + 0x78], ecx
jmp 0x450286
push esi
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004445cf
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x13c], eax
jne 0x450283
push 0x4a7254
jmp 0x453089
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x450296
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x15], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x4502a7
lea eax, [ebp + 0x78]
push eax
call fcn.0040418b
jmp 0x4502bb
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438670
pop ecx
mov dword [ebp - 0x124], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x60], 1
jne 0x4502d2
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x60], 0
cmp word [eax], 0x2d
jne 0x4502e3
lea eax, [ebp + 0x78]
push eax
call fcn.0040418b
jmp 0x4502f7
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00438670
pop ecx
mov dword [ebp - 0x120], eax
cmp byte [ebp + 0x51], 0
pop ecx
je 0x45032e
push esi
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004445cf
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004385d3
add esp, 0x14
mov dword [ebp - 0x134], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x180], esi
mov di, word [eax]
cmp di, 0x2d
je 0x450388
cmp byte [ebp + 0x51], 0
je 0x450388
cmp di, si
je 0x450388
mov dword [ebp - 0x168], eax
push esi
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.00414faa
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x180]
add esp, 0xc
mov dword [ebp - 0x130], 1
mov dword [ebp - 0x104], eax
mov word [eax + ecx*2], si
cmp byte [ebp + 0x52], 1
mov byte [ebp + 3], 0
mov byte [ebp - 0xe], 0
je 0x45039f
cmp byte [ebp + 0x52], 4
jge 0x45039f
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0xb0]
push 5
push esi
mov edi, esi
push str._img
mov dword [ebp + 0x78], edi
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x45040d
lea ecx, [esi + 0xa]
mov esi, ecx
xor edx, edx
jmp 0x4503da
mov eax, edx
call fcn.00402b47
test al, al
jne 0x4503e5
cmp dx, 0x23
je 0x4503e5
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
test dx, dx
jne 0x4503c7
sub ecx, esi
sar ecx, 1
test ecx, ecx
jle 0x4503fe
push ecx
push esi
lea ecx, [ebp - 0x5c]
call fcn.00433d4a
mov dword [ebp - 4], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.0042ebab
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x450453
push 2
push esi
push 0x496ec4
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x450427
lea edi, [esi + 4]
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x45044b
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004369c5
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [esi], 0
setne byte [ebp + 3]
mov ax, word [edi]
cmp ax, 0x23
je 0x450466
cmp ax, 0x3a
jne 0x45050c
push 2
pop esi
add edi, esi
push esi
push edi
push 0x496ec0
mov dword [ebp + 0x78], edi
call fcn.0042fae7
push esi
push edi
push 0x496ebc
mov byte [ebp + 0x6b], al
call fcn.0042fae7
mov byte [ebp + 0x3b], al
mov al, byte [ebp + 0x6b]
or al, byte [ebp + 0x3b]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x6b], 0
mov byte [ebp - 0xe], al
jne 0x4504b3
cmp word [edi], 0x2b
jne 0x4504b3
add edi, esi
mov byte [ebp + 1], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x3b], 0
jne 0x4504d6
mov ax, word [edi]
cmp ax, 0x40
je 0x4504ce
cmp ax, 0x2d
je 0x4504ce
cmp ax, 0x3d
jne 0x4504d6
or dword [ebp - 0x20], esi
add edi, esi
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x45050c
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004369c5
pop ecx
xor edi, edi
test eax, eax
pop ecx
jle 0x45050e
cmp dword [ebp + 0x60], edi
mov byte [ebp + 2], 1
jne 0x45050e
mov byte [ebp + 0x6b], 1
jmp 0x45050e
xor edi, edi
mov eax, dword [ebp - 4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x5c]
lea esi, [ebp - 0x280]
mov word [ebp - 0x280], di
cmp word [eax], di
mov dword [ebp - 0xac], esi
je 0x450537
mov esi, eax
mov dword [ebp - 0xac], esi
push dword [ebp - 4]
lea eax, [ebp - 0x280]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x11
push esi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x450576
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 8]
add esi, 0x22
push eax
mov dword [ebp - 8], esi
call fcn.004369c5
pop ecx
pop ecx
cmp byte [ebp + 0x2e], 0
jne 0x450582
cmp byte [ebp + 0x5d], 0
je 0x450590
cmp dword [ebp - 4], edi
jge 0x450590
cmp dword [ebp - 0x34], edi
jl 0x45070f
cmp dword [ebp + 0x60], edi
mov dword [ebp + 0x6c], edi
mov dword [ebp - 8], ebx
mov dword [ebp - 0xa8], edi
jg 0x4505b4
cmp byte [ebp + 0x52], 0
jg 0x4505b4
cmp dword [ebp - 0x74], edi
jne 0x4505b4
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x24], edi
je 0x4505bb
mov dword [ebp - 0x24], 1
cmp byte [ebp + 0x1f], 0
mov byte [ebp + 0x34], 0
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xdc], 0x80070057
je 0x4505f6
cmp dword [ebp - 0x34], edi
jl 0x4505f6
xor eax, eax
cmp byte [ebp + 0x1f], al
push ebx
setg al
push ebx
dec eax
cdq
push edx
push eax
push dword [ebp - 0x34]
call fcn.00403e91
add esp, 0x14
mov dword [ebp - 0xdc], edi
xor edi, edi
cmp dword [ebp + 0x20], edi
mov ebx, 0x200
jle 0x450719
cmp byte [ebp + 0x51], 0
jne 0x450719
cmp dword [ebp - 4], edi
jge 0x450621
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x4506ff
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x20], eax
je 0x4506ff
cmp eax, 1
jl 0x4506ff
cmp eax, 4
jg 0x4506ff
cmp byte [ebp + 0x3a], 2
jl 0x4506ff
push 6
pop ecx
mov esi, str.21:INDATA
lea edi, [ebp - 0x5d0]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov ecx, 0xae
lea edi, [ebp - 0x5b8]
rep stosd dword es:[edi], eax
movsx eax, word [ebp - 4]
push eax
lea eax, [ebp - 0x1f8]
push 0x491cbc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x5c]
add esp, 0xc
cmp word [ecx], 0
lea eax, [ebp - 0x1f8]
je 0x450693
mov eax, ecx
movsx ecx, byte [ebp + 0x5f]
push ecx
push dword [ebp + 0x20]
push dword [ebp + 0x60]
push eax
lea eax, [ebp - 0x5ba]
push str.__SwapPhyID___.300s___d__d__d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x80]
add esp, 0x18
lea eax, [ebp - 0x5d0]
push eax
call fcn.0042065b
cmp byte [ebp + 0x5d], 0
mov dword [ebp - 0xa8], eax
je 0x4506d9
cmp dword [ebp - 4], 0
jge 0x4525be
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
push 0x4a7254
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0xa8]
jmp 0x453091
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
push 0x4a7254
jmp 0x45304f
cmp byte [ebp + 0x2e], 0x10
jne 0x450729
test byte [ebp + 0x5d], 0x20
jne 0x4525a7
cmp byte [ebp + 0x1f], 0
je 0x45074d
cmp dword [ebp - 0x24], edi
jne 0x45074d
cmp byte [ebp + 0x5f], 0
jne 0x4525ad
cmp byte [ebp + 0x5d], 0
je 0x452f27
jmp 0x4525b6
push 0x600
lea ecx, [ebp + 0x64]
call fcn.00433b18
mov eax, dword [ebp + 0x64]
mov esi, dword [ebp - 0x74]
add eax, 0x200
and eax, 0xfffffe00
cmp esi, edi
mov dword [ebp + 0x28], eax
jne 0x452630
mov esi, dword [ebp + 0xc]
cmp esi, edi
jne 0x452965
mov al, byte [ebp + 0x52]
cmp al, 6
je 0x452cd3
cmp al, 1
je 0x452da0
cmp al, 2
je 0x452dce
cmp al, 3
je 0x452e43
cmp al, 4
je 0x4530ef
cmp al, 5
je 0x4530ef
cmp byte [ebp + 0x3b], 0
je 0x4507d2
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x6b], 0
je 0x4507df
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x2f], 0
je 0x4507f7
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
cmp byte [ebp + 3], 0
je 0x450806
cmp dword [ebp - 0x34], edi
jl 0x45263d
cmp byte [ebp - 0xe], 0
je 0x450815
cmp dword [ebp + 0x60], edi
jl 0x45263d
dec dword [ebp + 0x60]
or esi, 0xffffffff
cmp byte [ebp + 0x51], 0
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], esi
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], esi
mov byte [ebp - 0x45], 0
mov byte [ebp - 0x5f], 0
mov dword [ebp - 0x54], edi
mov byte [ebp - 0xd], 0
mov byte [ebp - 0x18], 0
mov dword [ebp - 0x14], edi
jne 0x450868
cmp dword [ebp - 0x28], edi
jne 0x450868
mov eax, dword [ebp + 0x54]
or eax, dword [ebp + 0x58]
jne 0x450868
mov eax, dword [ebp + 0x3c]
or eax, dword [ebp + 0x40]
jne 0x450868
mov byte [ebp + 0x2f], 1
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 0x46], 0
je 0x450943
cmp dword [ebp + 0x58], edi
jl 0x450943
jg 0x45088d
cmp dword [ebp + 0x54], edi
jb 0x450943
cmp dword [ebp + 0x40], edi
jl 0x450943
jg 0x4508a2
cmp dword [ebp + 0x3c], 0x11
jb 0x450943
push edi
push 0x2200
push edi
push ebx
push dword [ebp + 0x58]
mov dword [ebp + 0x24], 1
push dword [ebp + 0x54]
call fcn.0047b320
push edx
push eax
push dword [ebp - 0x34]
lea ecx, [ebp + 0x30]
call fcn.00431f28
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp - 0xac]
lea ecx, [ebp + 0x6c]
call fcn.004041e7
cmp dword [ebp + 0x6c], edi
je 0x452f43
cmp dword [ebp + 0x24], edi
je 0x45091a
cmp byte [ebp + 0x6b], 0
jne 0x45091a
push dword [ebp + 0x58]
push dword [ebp + 0x54]
push dword [ebp + 0x6c]
call fcn.0042aaba
add esp, 0xc
lea ecx, [ebp + 0x30]
call fcn.00431f57
mov dword [ebp - 0xdc], edi
push 0x800
push 1
push edi
push dword [ebp + 0x6c]
call fcn.004384dd
add esp, 0x10
cmp byte [ebp + 0x2e], 0x10
mov dword [ebp - 8], eax
jne 0x450948
lea ecx, [ebp + 0x64]
call fcn.0042eb98
jmp 0x4525a7
mov dword [ebp + 0x24], edi
jmp 0x4508c9
cmp byte [ebp + 0x2e], 1
jne 0x45097a
push dword [ebp + 0x6c]
call fcn.00431ecc
pop ecx
mov esi, eax
lea ecx, [ebp + 0x64]
mov dword [ebp - 0xa8], esi
mov byte [ebp + 0x5f], 0
call fcn.0042eb98
cmp byte [ebp + 0x5d], 0
je 0x452607
jmp 0x4525b6
cmp dword [ebp - 0x28], 0xff
mov dword [ebp - 0x114], edi
mov dword [ebp - 0x110], edi
jg 0x452f58
cmp byte [ebp + 0x6b], 0
jne 0x4509de
cmp dword [ebp + 0x60], edi
jge 0x4509de
cmp dword [ebp + 0x58], edi
jg 0x452f58
jl 0x4509b2
cmp dword [ebp + 0x54], edi
jae 0x452f58
cmp dword [ebp + 0x40], edi
jg 0x452f58
jl 0x4509c6
cmp dword [ebp + 0x3c], edi
jae 0x452f58
cmp dword [ebp - 0x28], edi
jge 0x452f58
mov dword [ebp - 0x28], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], esi
cmp byte [ebp + 0x6b], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0x108], edi
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x144], esi
mov dword [ebp - 0x140], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0x30], eax
jne 0x450a29
cmp byte [ebp + 0x3b], 0
jne 0x450a29
cmp eax, 4
jl 0x451013
cmp byte [ebp + 0x51], 0
jne 0x451013
cmp byte [ebp + 0x47], 0
jne 0x451013
cmp byte [ebp + 0x6b], 0
je 0x450a4a
mov dword [ebp + 0x60], 4
cmp dword [ebp - 0x28], 5
je 0x45263d
cmp dword [ebp - 0x28], 0xf
je 0x45263d
and dword [ebp + 0x18], 0
push 0x100000
lea ecx, [ebp - 0xc]
call fcn.00433b18
lea eax, [ebp + 0x18]
push eax
push dword [ebp - 0xc]
push dword [ebp + 0x6c]
call fcn.00431d3b
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x6b], 0
mov edi, eax
jne 0x450ab3
cmp esi, ecx
jge 0x450a98
cmp ecx, 4
jge 0x450af2
cmp byte [ebp + 0x6b], 0
jne 0x450ab3
cmp byte [ebp + 0x3b], 0
jne 0x450ab3
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x53], 0
jg 0x450ade
dec eax
jmp 0x450ae5
cmp byte [ebp + 0x3b], 0
mov byte [ebp + 0x53], 1
jne 0x450afa
cmp byte [ebp + 0x6b], 0
je 0x450aff
xor eax, eax
cmp dword [ebp - 0x28], eax
jl 0x450af2
cmp word [ebp - 0x7c], ax
jle 0x450ad9
mov dword [ebp - 0x7c], 0x80
jmp 0x450aff
mov dword [ebp - 0x7c], eax
jmp 0x450aff
lea eax, [eax*4 - 0x10]
test eax, eax
jle 0x450af2
cmp eax, esi
jl 0x450aff
cmp ecx, 4
jle 0x450aff
lea ecx, [ebp - 0xc]
jmp 0x453024
cmp esi, 4
jle 0x450af2
cmp esi, 4
jle 0x450b0f
lea eax, [esi - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x48], eax
jmp 0x450b13
and dword [ebp + 0x48], 0
or dword [ebp + 0x4c], 0xffffffff
or dword [ebp - 0x30], 0xffffffff
cmp byte [ebp + 0x53], 0
jne 0x450b36
cmp ecx, 4
jl 0x450b32
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0x48], eax
jmp 0x450b36
and dword [ebp + 0x48], 0
or dword [ebp + 0x10], 0xffffffff
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x450b4b
cmp cl, 0xf
jne 0x450b4e
mov dword [ebp + 0x10], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x450b3f
cmp byte [ebp + 0x53], 0
je 0x450b65
cmp dword [ebp + 0x10], 0
jl 0x450af2
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
push 0
shl eax, 4
lea esi, [eax + edi + 0x30]
push ebx
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0047b270
push 0
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0x190], eax
push dword [esi + 0x10]
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], edx
call fcn.0047b270
mov dword [ebp - 0x174], eax
mov eax, dword [ebp + 0x48]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x3b], 0
mov dword [ebp - 0x170], edx
lea esi, [eax + edi + 0x30]
je 0x450c8a
mov eax, dword [ebp + 0x18]
xor esi, esi
cmp eax, 8
jne 0x450be1
mov ecx, dword [ebp - 0x190]
mov edx, dword [ebp - 0x18c]
jmp 0x450c31
add eax, 0xfffffff8
and eax, 0xfffffffc
lea eax, [eax + eax*8]
shl eax, 4
lea edi, [eax + edi + 0x30]
lea eax, [edi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x450c10
cmp cl, 0xf
je 0x450c10
inc esi
add eax, 0x90
cmp esi, 4
jl 0x450bf4
jmp 0x450af2
push 0
push ebx
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.0047b270
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
test esi, esi
jl 0x450af2
and dword [ebp - 0x1e8], 0
xor eax, eax
lea edi, [ebp - 0x1e4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x1e8]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.00438956
add esp, 0x14
cmp byte [ebp + 0x5f], 0
je 0x450c6b
push dword [ebp + 0x6c]
mov byte [ebp + 0x5f], 0
call fcn.00431ecc
pop ecx
lea ecx, [ebp - 0xc]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
cmp byte [ebp + 0x5d], 0
je 0x4530d6
jmp 0x4525a7
cmp dword [ebp + 0x18], 4
jg 0x450c98
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x4c], eax
jmp 0x450cc3
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x450ca9
cmp cl, 0xf
jne 0x450cac
mov dword [ebp + 0x4c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x450c9d
cmp byte [ebp + 0x53], 0
jne 0x450cc3
mov eax, dword [ebp + 0x48]
add dword [ebp + 0x4c], eax
cmp dword [ebp + 0x4c], 0
jge 0x450cd3
cmp byte [ebp + 0x6b], 0
je 0x450af2
cmp byte [ebp + 0x53], 0
je 0x450cdf
and dword [ebp - 0x30], 0
jmp 0x450d09
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x450cf1
test edx, edx
jne 0x450cfe
cmp cl, 5
je 0x450cfe
cmp cl, 0xf
je 0x450cfe
mov dword [ebp - 0x30], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x450ce7
cmp byte [ebp + 0x53], 0
jne 0x450d19
cmp dword [ebp - 0x30], 0
jl 0x450af2
cmp byte [ebp + 0x6b], 0
je 0x450f22
mov eax, dword [ebp + 0x48]
test eax, eax
jg 0x450d2d
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
shl eax, 4
push 0
lea ebx, [eax + edi + 0x30]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
push 0x200
push ecx
push eax
mov dword [ebp - 0xf8], ecx
call fcn.0047b270
cmp dword [ebp + 0x18], 4
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], edx
jle 0x450e14
cmp dword [ebp + 0x4c], 0
jge 0x450e14
cmp byte [esi + 0x20], 0
je 0x452f8b
mov eax, dword [ebp + 0x18]
cmp eax, 8
jle 0x450d8c
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x450d8f
mov eax, dword [ebp + 0x10]
push 0
lea eax, [eax + eax*8]
mov ebx, 0x200
push ebx
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.0047b270
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x10c], eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 8]
push 0
adc ecx, dword [esi + 0xc]
push ebx
push ecx
push eax
mov dword [ebp - 0x108], edx
call fcn.0047b270
mov ecx, dword [ebp - 0x170]
mov esi, eax
sub eax, dword [ebp - 0x12c]
mov edi, edx
mov dword [ebp - 0x144], eax
mov eax, edi
sbb eax, dword [ebp - 0x128]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x174]
sub eax, esi
sbb ecx, edi
add eax, dword [ebp - 0x12c]
adc ecx, dword [ebp - 0x128]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x450e65
cmp dword [ebp + 0x48], 0
jle 0x450e37
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x14]
adc ecx, dword [ebp - 0xf8]
push 0
push 0x200
push ecx
push eax
call fcn.0047b270
mov ecx, dword [ebp - 0x170]
mov esi, eax
mov eax, dword [ebp - 0x174]
sub eax, esi
mov edi, edx
sbb ecx, edi
add eax, dword [ebp - 0x12c]
adc ecx, dword [ebp - 0x128]
and dword [ebp - 0xd0], 0
and dword [ebp - 0xcc], 0
test ecx, ecx
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x9c], edi
jl 0x450af2
jg 0x450e83
test eax, eax
jbe 0x450af2
cmp byte [ebp - 0x15], 0
je 0x450e8f
add dword [ebp + 0x54], esi
adc dword [ebp + 0x58], edi
mov ebx, esi
add ebx, 1
mov edx, edi
adc edx, 0
cmp dword [ebp + 0x58], edx
jg 0x450eab
jl 0x450ea5
cmp dword [ebp + 0x54], ebx
ja 0x450eab
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], edx
sub eax, dword [ebp + 0x54]
sbb ecx, dword [ebp + 0x58]
add eax, esi
adc ecx, edi
cmp dword [ebp + 0x40], ecx
jl 0x450ec7
jg 0x450ec1
cmp dword [ebp + 0x3c], eax
jbe 0x450ec7
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], ecx
xor ebx, ebx
cmp dword [ebp + 0x40], ebx
jl 0x452f90
jg 0x450edd
cmp dword [ebp + 0x3c], ebx
jb 0x452f90
cmp dword [ebp + 0x48], ebx
mov eax, dword [ebp + 0x18]
jle 0x450efb
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x450ef1
inc eax
jmp 0x450f03
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x450f03
and eax, 0xfffffffc
cmp eax, 3
jg 0x450f06
inc eax
jmp 0x450f0e
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], edi
jmp 0x451004
mov eax, dword [ebp + 0x4c]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push 0
mov dword [ebp - 0x1a0], eax
add eax, ebx
mov dword [ebp - 0x19c], ecx
push ebx
adc ecx, 0
push ecx
push eax
call fcn.0047b270
mov ecx, dword [esi + 0x14]
mov edi, eax
mov eax, dword [esi + 0x10]
push 0
sub eax, ebx
push ebx
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x9c], edx
call fcn.0047b270
cmp byte [ebp - 0x15], 0
je 0x450f8b
add dword [ebp + 0x54], edi
mov ecx, dword [ebp - 0x1ac]
adc dword [ebp + 0x58], ecx
xor esi, esi
cmp dword [ebp + 0x58], esi
jl 0x450fb3
jg 0x450f99
cmp dword [ebp + 0x54], esi
jbe 0x450fb3
mov ecx, dword [ebp - 0x1ac]
cmp dword [ebp + 0x58], ecx
jg 0x450fb1
jl 0x450fab
cmp dword [ebp + 0x54], edi
ja 0x450fb1
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], ecx
xor esi, esi
cmp dword [ebp + 0x40], esi
jl 0x450fe5
jg 0x450fbf
cmp dword [ebp + 0x3c], esi
jbe 0x450fe5
cmp dword [ebp + 0x40], edx
jl 0x450fd1
jg 0x450fcb
cmp dword [ebp + 0x3c], eax
jbe 0x450fd1
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], edx
cmp dword [ebp + 0x40], esi
jl 0x452fbc
jg 0x450fe5
cmp dword [ebp + 0x3c], esi
jb 0x452fbc
push esi
push ebx
push dword [ebp - 0x19c]
push dword [ebp - 0x1a0]
call fcn.0047b270
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
lea ecx, [ebp - 0xc]
call fcn.0042eb98
mov ebx, 0x200
xor edi, edi
cmp dword [ebp + 0x60], 4
push edi
push ebx
push dword [ebp - 0x110]
setge byte [ebp - 0x19]
push dword [ebp - 0x114]
call fcn.0047b320
cmp dword [ebp + 0x24], edi
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
je 0x45105e
cmp byte [ebp + 0x6b], 0
je 0x45105e
push dword [ebp + 0x58]
push dword [ebp + 0x54]
push dword [ebp + 0x6c]
call fcn.0042aaba
add esp, 0xc
lea ecx, [ebp + 0x30]
call fcn.00431f57
mov dword [ebp - 0xdc], edi
mov esi, dword [ebp + 0x28]
push ebx
push edi
add esi, 0x200
push esi
call fcn.0047b210
push edi
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x1c
cmp eax, dword [ebp - 0x68]
jne 0x452935
cmp edx, dword [ebp - 0x64]
jne 0x452935
push edi
lea eax, [ebp - 0x2c]
push eax
push ebx
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
push esi
push dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
call fcn.0047b530
add esp, 0xc
cmp dword [ebp + 0x4c], edi
je 0x452935
cmp byte [ebp + 0x47], 0
je 0x451171
cmp byte [ebp + 0x51], 0
jne 0x451171
push esi
call fcn.00431f07
push 0x40
lea eax, [esi + 0x1be]
push edi
push eax
call fcn.0047b210
push ebx
push esi
push dword [ebp + 0x28]
mov word [esi + 0x1fe], 0xaa55
call fcn.0042ebfe
add esp, 0x1c
test eax, eax
je 0x451133
push edi
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
push edi
lea eax, [ebp - 0x2c]
push eax
push ebx
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x2c], edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov dword [ebp - 0xa8], esi
jmp 0x451139
mov esi, dword [ebp - 0xa8]
cmp byte [ebp + 0x5f], 0
je 0x451151
cmp dword [ebp - 4], edi
jl 0x451151
push dword [ebp + 0x6c]
mov byte [ebp + 0x5f], 0
call fcn.00431ecc
pop ecx
cmp byte [ebp + 0x5d], 0
je 0x452f4b
cmp dword [ebp - 4], edi
jl 0x452f4b
lea ecx, [ebp + 0x64]
call fcn.0042eb98
jmp 0x4525be
cmp byte [ebp + 0x3a], 0
jne 0x451187
cmp byte [ebp + 2], 0
je 0x451196
cmp dword [ebp + 0x60], 1
jle 0x45263d
cmp byte [ebp + 2], 0
je 0x451196
cmp dword [ebp + 0x60], edi
jl 0x45263d
push dword [ebp + 0x6c]
call fcn.00431957
lea ecx, [ebp + 0x14]
mov dword [ebp + 0x10], eax
mov dword [esp], 0x100000
call fcn.00433b18
cmp dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
jl 0x4511da
push dword [ebp + 0x6c]
mov esi, dword [ebp + 0x14]
call fcn.00431ab6
pop ecx
push edi
push dword [ebp + 0x10]
push edx
push eax
call fcn.0047b270
mov dword [ebp - 0x40], edx
jmp 0x451221
lea eax, [ebp - 0x21c]
push eax
push edi
push dword [ebp - 0xac]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x451224
test byte [ebp - 0x21c], 0x10
jne 0x451224
mov eax, dword [ebp - 0x200]
mov edx, dword [ebp - 0x1fc]
and eax, 0xfffffe00
xor ecx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr edx, 9
xor esi, esi
or eax, edx
or ecx, esi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x98]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x6c]
call fcn.00431d3b
mov ecx, dword [ebp - 0x5c]
mov cx, word [ecx]
add esp, 0xc
cmp cx, di
mov dword [ebp - 0x98], eax
jne 0x45124e
cmp eax, edi
je 0x45128b
cmp eax, edi
je 0x451256
mov eax, dword [eax]
jmp 0x451258
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x5e]
cmp byte [ebp + 0x5e], 0
je 0x45126f
cmp byte [ebp - 0x47], 0
mov byte [ebp + 0x39], 1
je 0x451273
mov byte [ebp + 0x39], 0
cmp byte [ebp - 0x5d], 0
jne 0x45129e
cmp byte [ebp + 0x47], 0
jne 0x45129e
cmp byte [ebp + 0x39], 0
je 0x451298
cmp byte [ebp + 0x51], 0
jne 0x45129e
lea ecx, [ebp + 0x14]
call fcn.0042eb98
jmp 0x45263d
cmp byte [ebp + 0x51], 0
jne 0x45128b
mov eax, dword [ebp - 0xd8]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp + 0x48], eax
mov eax, dword [ebp - 0xc8]
xor esi, esi
cmp cx, di
mov dword [ebp + 0x4c], eax
jne 0x45136d
xor eax, eax
mov dword [ebp - 0x1d8], esi
lea edi, [ebp - 0x1d4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push eax
push 0x18
lea eax, [ebp - 0x1d8]
push eax
push esi
push esi
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0xd4], esi
jg 0x45131d
jl 0x451307
cmp dword [ebp - 0xd8], esi
ja 0x45131d
mov eax, dword [ebp - 0x1cc]
mov dword [ebp + 0x18], eax
cdq
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], edx
cmp dword [ebp - 0xe4], esi
jg 0x451345
jl 0x45132f
cmp dword [ebp - 0xe8], esi
ja 0x451345
mov eax, dword [ebp - 0x1c8]
mov dword [ebp + 0x48], eax
cdq
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
cmp dword [ebp - 0xc4], esi
jg 0x45136d
jl 0x451357
cmp dword [ebp - 0xc8], esi
ja 0x45136d
mov eax, dword [ebp - 0x1c4]
mov dword [ebp + 0x4c], eax
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xd4], esi
jg 0x451393
jl 0x45137f
cmp dword [ebp - 0xd8], esi
ja 0x451393
mov eax, 0xff
mov dword [ebp + 0x18], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], esi
cmp dword [ebp - 0xe4], esi
jg 0x4513b7
jl 0x4513a5
cmp dword [ebp - 0xe8], esi
ja 0x4513b7
push 0x3f
pop eax
mov dword [ebp + 0x48], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], esi
cmp dword [ebp - 0xc4], esi
jg 0x4513d8
jl 0x4513c9
cmp dword [ebp - 0xc8], esi
ja 0x4513d8
mov dword [ebp + 0x4c], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], esi
mov eax, dword [ebp + 0x4c]
cdq
mov ecx, 0x200
idiv ecx
cmp byte [ebp + 0x39], 0
mov esi, dword [ebp + 0x10]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x14]
lea ebx, [eax + esi]
lea edi, [esi + ebx + 0x10000]
mov dword [ebp - 0xa4], edi
jne 0x451ceb
cmp byte [ebp + 0x51], 0
jne 0x451ceb
cmp byte [ebp + 0x2f], 0
mov byte [ebp + 0x5e], 0
jne 0x4518b4
mov ebx, dword [ebp + 0x58]
xor eax, eax
cmp ebx, eax
jg 0x451442
jl 0x45142e
cmp dword [ebp + 0x54], eax
jae 0x451442
cmp dword [ebp + 0x40], eax
jl 0x4518b4
jg 0x451442
cmp dword [ebp + 0x3c], eax
jb 0x4518b4
mov edi, dword [ebp + 0x60]
cmp edi, eax
jl 0x4518b4
push 0x100000
lea ecx, [ebp + 4]
call fcn.00433b18
mov eax, dword [ebp + 0x4c]
imul eax, dword [ebp + 0x48]
cdq
mov ecx, 0x200
idiv ecx
mov esi, eax
imul eax, dword [ebp + 0x18]
cmp dword [ebp + 0x4c], 0
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
jle 0x453019
mov eax, dword [ebp - 0x5c]
cmp word [eax], 0
jne 0x4514ca
and dword [ebp - 0xa4], 0
lea eax, [ebp - 0xa4]
push eax
push dword [ebp + 4]
push dword [ebp + 0x6c]
call fcn.00431d3b
add esp, 0xc
test eax, eax
je 0x452fe5
cmp edi, 4
jl 0x4514ca
cmp byte [ebp + 0x6b], 0
jne 0x4514ca
cmp edi, dword [ebp - 0xa4]
jge 0x453019
xor ecx, ecx
xor eax, eax
xor edx, edx
cmp ebx, ecx
jl 0x45156e
jg 0x4514e3
cmp dword [ebp + 0x54], ecx
jbe 0x45156e
mov edi, dword [ebp - 0x50]
and edi, dword [ebp - 0x4c]
cmp edi, 0xffffffff
jne 0x45151c
cmp ebx, dword [ebp - 0x118]
jl 0x451517
jg 0x451503
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp - 0x11c]
jb 0x451517
cmp byte [ebp - 0x19], 0
jne 0x451517
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
jmp 0x451558
mov eax, esi
cdq
jmp 0x451556
cmp byte [ebp - 0x17], 0
jne 0x45156e
mov eax, dword [ebp + 0x4c]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x50]
mov esi, edx
adc esi, dword [ebp - 0x4c]
push edx
sub ecx, 1
push eax
sbb esi, 0
push esi
push ecx
call fcn.0047b270
mov ecx, eax
mov eax, dword [ebp + 0x24]
mov esi, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.0047b320
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
push edx
push eax
push ebx
push dword [ebp + 0x54]
call fcn.00431e10
add esp, 0x10
add dword [ebp + 0x54], eax
adc ebx, edx
mov dword [ebp + 0x58], ebx
xor ecx, ecx
cmp dword [ebp + 0x40], ecx
jl 0x451598
jg 0x45157a
cmp dword [ebp + 0x3c], ecx
jbe 0x451598
cmp byte [ebp - 0x55], 0
jne 0x451598
sub dword [ebp + 0x3c], eax
sbb dword [ebp + 0x40], edx
cmp dword [ebp + 0x40], ecx
jg 0x451598
jl 0x451592
cmp dword [ebp + 0x3c], ecx
jae 0x451598
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x40], ecx
cmp ebx, ecx
jl 0x4515a8
jg 0x4515a3
cmp dword [ebp + 0x54], ecx
jbe 0x4515a8
mov edi, dword [ebp + 0x54]
jmp 0x4515ac
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x40], ecx
jl 0x4515e6
jg 0x4515b8
cmp dword [ebp + 0x3c], ecx
jbe 0x4515e6
mov eax, dword [ebp - 0x3c]
and eax, dword [ebp - 0x38]
cmp eax, 0xffffffff
jne 0x45177d
push dword [ebp - 0x118]
add edi, dword [ebp + 0x3c]
push dword [ebp - 0x11c]
adc ebx, dword [ebp + 0x40]
push ebx
push edi
call fcn.0047d950
sub dword [ebp + 0x3c], eax
sbb dword [ebp + 0x40], edx
mov esi, 0x200
cmp dword [ebp - 0xcc], 0
mov byte [ebp + 0x5e], 0
mov byte [ebp + 0x53], 0
mov byte [ebp + 0x39], 0
jl 0x451722
jg 0x451613
cmp dword [ebp - 0xd0], 0
jbe 0x451722
mov ecx, dword [ebp + 0x3c]
sub ecx, dword [ebp - 0xa0]
mov edi, dword [ebp + 0x40]
sbb edi, dword [ebp - 0x9c]
mov eax, dword [ebp + 0x24]
add ecx, dword [ebp + 0x54]
cdq
adc edi, dword [ebp + 0x58]
push edx
push eax
push edi
push ecx
call fcn.0047b270
and dword [ebp - 0x164], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x18]
lea edi, [ebp - 0x160]
push dword [ebp + 0x48]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x144]
lea eax, [ebp + 0x39]
push eax
lea eax, [ebp + 0x53]
push eax
lea eax, [ebp + 0x5e]
push eax
push dword [ebp - 0x140]
mov dword [ebp - 0xd0], ebx
push edi
mov dword [ebp - 0xcc], edx
call fcn.00431e3a
mov al, byte [ebp + 0x53]
add esp, 0x20
push 1
push dword [ebp + 0x18]
mov byte [ebp - 0x163], al
mov al, byte [ebp + 0x39]
push dword [ebp + 0x48]
mov byte [ebp - 0x162], al
mov al, byte [ebp + 0x5e]
mov byte [ebp - 0x161], al
lea eax, [ebp + 0x39]
push eax
lea eax, [ebp + 0x53]
push eax
lea eax, [ebp + 0x5e]
push eax
push 0
push 2
push dword [ebp - 0x140]
mov byte [ebp - 0x164], 0
push edi
call fcn.0047b320
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.00431e3a
mov al, byte [ebp + 0x53]
mov byte [ebp - 0x15f], al
mov al, byte [ebp + 0x39]
mov byte [ebp - 0x15e], al
mov al, byte [ebp + 0x5e]
push 1
mov byte [ebp - 0x15d], al
lea eax, [ebp - 0x164]
push eax
push dword [ebp - 0x108]
mov byte [ebp - 0x160], 5
push dword [ebp - 0x10c]
mov dword [ebp - 0x15c], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x158], ebx
call fcn.00438956
add esp, 0x34
mov eax, dword [ebp + 0x24]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
call fcn.0047b270
cmp dword [ebp + 0x58], 0
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], edx
jl 0x4517e7
jg 0x451760
xor eax, eax
cmp dword [ebp + 0x54], eax
jb 0x4517e9
push ebx
push edi
push dword [ebp + 0x58]
push dword [ebp + 0x54]
call fcn.0047b270
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
xor eax, eax
jmp 0x4517f5
cmp byte [ebp - 0x17], 0
jne 0x4515e6
mov eax, dword [ebp + 0x4c]
cdq
mov esi, eax
add eax, dword [ebp - 0x3c]
mov ecx, edx
adc ecx, dword [ebp - 0x38]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0xec], edx
call fcn.0047b270
push dword [ebp - 0xec]
push esi
push edx
push eax
call fcn.0047b320
push 0
mov esi, 0x200
push esi
push edx
push eax
call fcn.0047b270
add edi, dword [ebp + 0x3c]
push edx
adc ebx, dword [ebp + 0x40]
push eax
push ebx
push edi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
call fcn.0047d950
sub dword [ebp + 0x3c], eax
sbb dword [ebp + 0x40], edx
jmp 0x4515eb
xor eax, eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
cmp dword [ebp + 0x40], eax
jl 0x451816
jg 0x451801
cmp dword [ebp + 0x3c], eax
jb 0x451816
push ebx
push edi
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
call fcn.0047b270
mov dword [ebp - 0xb4], edx
jmp 0x45181c
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb8], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x8c]
setge al
push eax
push dword [ebp + 0x18]
lea eax, [ebp - 0x45]
push dword [ebp + 0x48]
push eax
lea eax, [ebp - 0x5f]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
push edi
call fcn.00431e3a
xor ecx, ecx
add esp, 0x20
cmp dword [ebp + 0x58], ecx
jl 0x45187a
jg 0x451862
cmp dword [ebp + 0x54], ecx
jbe 0x45187a
sub edi, dword [ebp - 0x1a8]
sbb ebx, dword [ebp - 0x1a4]
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], ebx
mov al, byte [ebp - 0x19]
mov byte [ebp + 0x5e], al
movsx eax, al
push eax
push dword [ebp + 0x18]
lea eax, [ebp - 0xd]
push dword [ebp + 0x48]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0xb8]
lea eax, [edi + eax - 1]
push ecx
push eax
call fcn.00431e3a
add esp, 0x20
lea ecx, [ebp + 4]
call fcn.0042eb98
jmp 0x4518b9
mov esi, 0x200
mov ecx, dword [ebp + 0x28]
mov ebx, dword [ebp - 0x30]
lea eax, [ecx + 0x200]
push esi
push eax
shl ebx, 4
push ecx
lea edi, [ebx + eax]
call fcn.0047b530
add esp, 0xc
cmp dword [ebp - 0xcc], 0
jl 0x45191b
jg 0x4518ea
cmp dword [ebp - 0xd0], 0
jb 0x45191b
cmp dword [ebp - 0x30], 0
jle 0x451904
mov eax, dword [ebp + 0x28]
push ebx
add eax, 0x3be
push 0
push eax
call fcn.0047b210
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.0047b210
add esp, 0xc
cmp byte [ebp + 0x6b], 0
mov al, byte [edi + 0x1c2]
jne 0x45193d
cmp byte [ebp + 0x3a], 2
jge 0x45193d
cmp al, 5
je 0x453021
cmp al, 0xf
je 0x453021
cmp byte [ebp + 0x6b], 0
mov edx, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x4519af
test al, al
je 0x4519af
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x4519b1
cmp byte [ebp + 0x3a], 2
jge 0x4519b1
cmp byte [ebp - 0x19], al
jne 0x4519b1
cmp dword [ebp + 0x58], eax
jl 0x45198b
jg 0x451971
cmp dword [ebp + 0x54], eax
jb 0x45198b
cmp dword [ebp - 0x8c], edx
jne 0x453021
cmp dword [ebp - 0x88], eax
jne 0x453021
xor eax, eax
cmp dword [ebp + 0x40], eax
jl 0x4519b1
jg 0x451997
cmp dword [ebp + 0x3c], eax
jb 0x4519b1
cmp dword [ebp - 0xb8], ecx
jne 0x4519a7
cmp dword [ebp - 0xb4], eax
je 0x4519af
test ecx, ecx
jne 0x453021
xor eax, eax
cmp byte [ebp + 0x2f], 0
je 0x4519d3
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov ebx, dword [ebp - 0x28]
cmp ebx, eax
jl 0x4519e0
mov byte [edi + 0x1c2], bl
mov ebx, dword [ebp - 0x7c]
cmp bx, ax
jl 0x4519ee
mov byte [edi + 0x1be], bl
cmp dword [ebp + 0x58], 0
jg 0x451a1e
jl 0x4519fc
cmp dword [ebp + 0x54], 0
jae 0x451a1e
xor eax, eax
cmp dword [ebp + 0x40], eax
jl 0x451a99
jg 0x451a12
cmp dword [ebp + 0x3c], eax
jb 0x451a99
mov eax, dword [ebp - 0xb8]
lea eax, [edx + eax - 1]
jmp 0x451a36
xor eax, eax
cmp dword [ebp + 0x40], eax
jg 0x451a5a
jl 0x451a2c
cmp dword [ebp + 0x3c], eax
jae 0x451a5a
mov eax, dword [ebp - 0x8c]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x5e]
push ecx
push dword [ebp + 0x18]
lea ecx, [ebp - 0xd]
push dword [ebp + 0x48]
push ecx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x14]
push ecx
push 0
push eax
call fcn.00431e3a
add esp, 0x20
xor eax, eax
cmp dword [ebp + 0x58], eax
jl 0x451a8d
jg 0x451a66
cmp dword [ebp + 0x54], eax
jb 0x451a8d
mov cl, byte [ebp - 0x5f]
mov byte [edi + 0x1bf], cl
mov cl, byte [ebp - 0x45]
mov byte [edi + 0x1c0], cl
mov cl, byte [ebp - 0x54]
mov byte [edi + 0x1c1], cl
mov ecx, dword [ebp - 0x8c]
mov dword [edi + 0x1c6], ecx
cmp dword [ebp + 0x40], eax
jg 0x451aa5
jl 0x451a99
cmp dword [ebp + 0x3c], eax
jae 0x451aa5
cmp dword [ebp + 0x58], eax
jl 0x451ac0
jg 0x451aa5
cmp dword [ebp + 0x54], eax
jb 0x451ac0
mov cl, byte [ebp - 0x18]
mov byte [edi + 0x1c3], cl
mov cl, byte [ebp - 0xd]
mov byte [edi + 0x1c4], cl
mov cl, byte [ebp - 0x14]
mov byte [edi + 0x1c5], cl
cmp dword [ebp + 0x40], eax
jl 0x451ad8
jg 0x451acc
cmp dword [ebp + 0x3c], eax
jb 0x451ad8
mov ecx, dword [ebp - 0xb8]
mov dword [edi + 0x1ca], ecx
cmp dword [ebp - 0x28], eax
jge 0x451afa
cmp bx, ax
jge 0x451afa
cmp dword [ebp + 0x58], eax
jg 0x451afa
jl 0x451aee
cmp dword [ebp + 0x54], eax
jae 0x451afa
cmp dword [ebp + 0x40], eax
jl 0x451b11
jg 0x451afa
cmp dword [ebp + 0x3c], eax
jb 0x451b11
mov ecx, dword [ebp + 0x28]
add ecx, 0x200
mov byte [ecx + 0x1fe], 0x55
mov byte [ecx + 0x1ff], 0xaa
cmp bx, ax
jge 0x451b49
cmp dword [ebp - 0x28], eax
jge 0x451b49
cmp dword [ebp + 0x58], eax
jg 0x451b49
jl 0x451b27
cmp dword [ebp + 0x54], eax
jae 0x451b49
cmp dword [ebp + 0x40], eax
jg 0x451b49
jl 0x451b33
cmp dword [ebp + 0x3c], eax
jae 0x451b49
mov eax, dword [ebp + 0x28]
add eax, 0x200
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov edi, dword [ebp - 0x68]
xor ebx, ebx
push ebx
push dword [ebp - 0x64]
push edi
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
cmp eax, edi
jne 0x45305a
cmp edx, dword [ebp - 0x64]
jne 0x45305a
or edi, dword [ebp - 0x64]
mov dword [ebp + 0x4c], 1
jne 0x451b8a
mov eax, dword [ebp + 0x28]
add eax, 0x200
push eax
call fcn.00431f07
pop ecx
mov eax, dword [ebp + 0x28]
lea edi, [eax + 0x200]
push esi
push edi
push eax
mov dword [ebp - 0x14], edi
call fcn.00433ef4
add esp, 0xc
test eax, eax
jne 0x451bc1
push ebx
lea eax, [ebp - 0x2c]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x4c], eax
call fcn.00431eb4
pop ecx
cmp dword [ebp + 0x58], ebx
jl 0x451c99
jg 0x451bd5
cmp dword [ebp + 0x54], esi
jb 0x451c99
cmp dword [ebp + 0x40], ebx
jl 0x451c99
jg 0x451be9
cmp dword [ebp + 0x3c], esi
jbe 0x451c99
cmp byte [ebp - 0x5e], 0
je 0x451c99
push esi
push ebx
push dword [ebp - 0x14]
call fcn.0047b210
add esp, 0xc
push ebx
push esi
push dword [ebp + 0x58]
push dword [ebp + 0x54]
call fcn.0047b320
push ebx
push edx
mov edi, eax
push edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x194], edx
call fcn.0042fa51
add esp, 0x10
cmp eax, edi
jne 0x451c96
cmp edx, dword [ebp - 0x194]
jne 0x451c96
push ebx
lea eax, [ebp - 0x2c]
push eax
push esi
push dword [ebp + 0x28]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
mov dword [ebp + 0x4c], eax
je 0x451c96
cmp dword [ebp - 0x2c], esi
jne 0x451c96
push esi
push dword [ebp - 0x14]
push dword [ebp + 0x28]
call fcn.00433ef4
add esp, 0xc
test eax, eax
jne 0x451c99
push ebx
push dword [ebp - 0x194]
push edi
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
cmp eax, edi
jne 0x451c96
cmp edx, dword [ebp - 0x194]
jne 0x451c96
push ebx
lea eax, [ebp - 0x2c]
push eax
push esi
push dword [ebp - 0x14]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x4c], eax
jmp 0x451c99
mov dword [ebp + 0x4c], ebx
cmp byte [ebp + 0x5f], 0
je 0x451cac
push dword [ebp + 0x6c]
mov byte [ebp + 0x5f], 0
call fcn.00431ecc
pop ecx
cmp byte [ebp + 0x5d], 0
jne 0x452592
lea ecx, [ebp + 0x14]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
cmp dword [ebp + 0x4c], ebx
mov eax, 0x4a7254
jne 0x453084
cmp eax, ebx
jmp 0x452954
cmp byte [ebp + 0x2f], 0
je 0x451cf5
mov byte [ebp + 1], 0
cmp byte [ebp + 0x5e], 0
je 0x451d0f
cmp byte [ebp + 0x47], 0
jne 0x451d0f
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x4c], eax
jmp 0x451d16
mov dword [ebp + 0x4c], 0x80
cmp byte [ebp - 0x60], 0
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], eax
je 0x451d46
add ecx, dword [ebp + 0x54]
adc eax, dword [ebp + 0x58]
sub ecx, 1
sbb eax, 0
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], eax
and dword [ebp - 0x94], 0
and dword [ebp - 0x90], 0
cmp byte [ebp + 0x47], 0
je 0x451daa
cmp dword [ebp + 0x58], 0
jg 0x451d73
jl 0x451d68
cmp dword [ebp + 0x54], 1
jae 0x451d73
and dword [ebp + 0x58], 0
mov dword [ebp + 0x54], 1
test eax, eax
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], eax
jg 0x451da2
jl 0x451d8a
cmp ecx, 1
jae 0x451da2
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x58]
jmp 0x451dae
xor eax, eax
xor ecx, ecx
lea edx, [ebp - 0x94]
push edx
push ecx
push eax
push esi
push dword [ebp + 0x4c]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x14]
push eax
call fcn.00438361
add esp, 0x1c
cmp byte [ebp + 0x5e], 0
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], edx
jne 0x451df1
or eax, edx
jne 0x451df1
and dword [ebp - 0x178], 0
mov dword [ebp - 0x17c], 1
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x60], eax
mov dword [ebp + 0x24], 1
jae 0x451e24
cmp dword [ebp + 0x20], eax
jge 0x451e24
mov ecx, dword [ebp + 0x60]
push 0x10
shl ecx, 7
lea eax, [esi + ebx]
add ecx, eax
push 0x494080
push ecx
call fcn.0042ebfe
add esp, 0xc
test eax, eax
jne 0x451e28
and dword [ebp + 0x24], 0
cmp byte [ebp + 0x47], 0
je 0x451ff0
mov ecx, dword [ebp + 0x4c]
cmp dword [ebp + 0x60], ecx
jae 0x453021
lea eax, [esi + ebx]
mov dword [ebp + 0x24], eax
mov eax, ecx
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x451e80
mov dword [ebp - 0x54], eax
push 0x1b3
push 0
push dword [ebp + 0x24]
call fcn.0047b210
mov eax, dword [ebp + 0x24]
push 0x4a
add eax, 0x1b4
push 0
push eax
call fcn.0047b210
add dword [ebp + 0x24], esi
add esp, 0x18
dec dword [ebp - 0x54]
jne 0x451e54
push 0x5c
push 0
push ebx
call fcn.0047b210
push 8
push str.EFI_PART
push ebx
call fcn.0047b530
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebp + 0x58]
mov eax, dword [ebp - 0x94]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x94]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x90]
mov dword [ebx + 0x1c], edx
adc edx, 0
add ecx, 0xffffffe0
mov dword [ebx + 0x24], eax
adc eax, 0xffffffff
mov dword [ebx + 0x34], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x30], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
mov dword [ebx + 8], 0x10000
mov dword [ebx + 0xc], 0x5c
mov dword [ebx + 0x2c], edx
jne 0x451efe
push 0x10
push 0x496e60
push eax
call fcn.0047b530
add esp, 0xc
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x58]
add eax, 1
push 0x5c
mov dword [ebx + 0x48], eax
mov eax, 0x80
adc ecx, 0
push ebx
push edi
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.0047b530
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 0x14]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0047b210
add esp, 0x18
cmp dword [ebp - 0xbc], 0
jg 0x451f73
jl 0x451f65
cmp dword [ebp - 0xc0], 1
jae 0x451f73
or dword [ebp - 0xc0], 0xffffffff
or dword [ebp - 0xbc], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x14]
push 1
push dword [ebp + 0x18]
shl eax, 4
push dword [ebp + 0x48]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x58]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x54]
call fcn.00431e3a
push 1
push dword [ebp + 0x18]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x48]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00431e3a
mov eax, dword [ebp + 0x54]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0xc0]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x452324
cmp byte [ebp - 0x16], 0
je 0x452000
cmp dword [ebp + 0x60], 0
jl 0x452324
cmp byte [ebp + 0x6b], 0
je 0x45205b
or dword [ebp + 0x60], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x4c], edi
mov byte [ebp + 1], 0
jbe 0x45205b
lea eax, [esi + ebx]
mov dword [ebp - 0x14], eax
push 0x10
push 0x494080
push dword [ebp - 0x14]
call fcn.0042ebfe
add esp, 0xc
test eax, eax
je 0x452040
add dword [ebp - 0x14], 0x80
inc edi
cmp edi, dword [ebp + 0x4c]
jb 0x45201b
jmp 0x45205b
mov dword [ebp + 0x60], edi
push 0x80
lea eax, [esi + ebx]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.0047b210
add esp, 0xc
mov eax, dword [ebp + 0x4c]
dec dword [ebp + 0x20]
cmp dword [ebp + 0x60], eax
jae 0x453021
cmp dword [ebp + 0x20], eax
jge 0x453021
cmp byte [ebp + 1], 0
je 0x452185
xor ecx, ecx
cmp byte [ebp + 0x5e], cl
je 0x4520d3
lea eax, [esi + ebx + 0x20]
cmp ecx, dword [ebp + 0x4c]
jae 0x4520d3
mov edx, dword [eax]
cmp edx, dword [ebp + 0x54]
jne 0x45209c
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x58]
je 0x4520a4
inc ecx
add eax, 0x80
jmp 0x452088
mov eax, dword [ebp + 0x10]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x494080
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x4520d0
push 0x80
push 0
push eax
call fcn.0047b210
add esp, 0xc
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x60]
shl eax, 7
push 0x10
lea edi, [esi + ebx]
add eax, edi
push 0x494080
push eax
mov dword [ebp - 0x98], eax
call fcn.0042ebfe
add esp, 0xc
test eax, eax
je 0x45216c
mov esi, dword [ebp + 0x60]
inc esi
cmp esi, dword [ebp + 0x4c]
mov dword [ebp + 0x48], esi
jae 0x453021
shl esi, 7
add esi, edi
push 0x10
push 0x494080
push esi
call fcn.0042ebfe
add esp, 0xc
test eax, eax
je 0x452134
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
add esi, 0x80
cmp eax, dword [ebp + 0x4c]
jb 0x45210d
jmp 0x45215d
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebp + 0x60]
jle 0x45215d
mov edi, eax
mov eax, dword [ebp + 0x10]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x48]
sub eax, dword [ebp + 0x60]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x45214e
mov eax, dword [ebp + 0x4c]
cmp dword [ebp + 0x48], eax
jae 0x453021
mov esi, dword [ebp + 0x10]
push 0x80
push 0
push dword [ebp - 0x98]
call fcn.0047b210
add esp, 0xc
and dword [ebp + 0x24], 0
mov eax, dword [ebp + 0x20]
xor ecx, ecx
cmp eax, ecx
jge 0x4522b5
cmp dword [ebp + 0x24], ecx
jne 0x4521be
xor eax, eax
inc eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x13c], ecx
jle 0x4521e2
mov edi, dword [ebp + 0x60]
mov eax, dword [ebp + 0x10]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x154]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x10]
xor ecx, ecx
cmp dword [ebp - 0x138], ecx
jle 0x452208
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x10]
shl ecx, 7
add eax, ebx
lea edi, [ecx + eax + 0x10]
lea esi, [ebp - 0x1c0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x10]
xor ecx, ecx
cmp dword [ebp - 0x124], ecx
jle 0x452227
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x54]
lea eax, [esi + ebx]
shl edx, 7
mov dword [edx + eax + 0x20], edi
mov edi, dword [ebp + 0x58]
mov dword [edx + eax + 0x24], edi
cmp dword [ebp - 0x120], ecx
jle 0x45224c
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp - 0xc0]
lea eax, [esi + ebx]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0xbc]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0x134], ecx
jle 0x452270
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x188]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0x184]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0x130], ecx
jle 0x4522fe
mov eax, dword [ebp - 0x104]
cmp word [eax], 0
je 0x4522fe
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x10]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.0047b210
add esp, 0xc
push 0x24
push dword [ebp - 0x104]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x4522fe
cmp eax, dword [ebp + 0x60]
je 0x4522fe
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x10]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x300]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x20]
shl ecx, 7
add eax, ecx
push 0x20
pop ecx
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov eax, dword [ebp + 0x20]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x300]
rep movsd dword es:[edi], dword [esi]
jge 0x4522fe
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0x2f], 0
je 0x452321
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x10]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.0047b210
add esp, 0xc
mov esi, dword [ebp + 0x10]
xor eax, eax
cmp byte [ebp - 0x16], al
mov dword [ebp + 0x24], eax
je 0x45241f
cmp byte [ebp + 0x47], al
jne 0x45241f
cmp dword [ebp + 0x4c], eax
mov dword [ebp - 0x30], eax
mov dword [ebp + 0x18], eax
jle 0x45241f
lea eax, [esi + ebx]
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x28], eax
mov edi, 0x80
push 0x10
push 0x494080
push dword [ebp + 0x48]
call fcn.0042ebfe
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x452380
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [ebp - 0x30]
jne 0x452380
and dword [ebp - 0x54], 0
jmp 0x452387
mov dword [ebp - 0x54], 1
and dword [ebp - 0x14], 0
test al, al
jne 0x4523cb
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp - 0x30]
je 0x4523c5
mov esi, dword [ebp + 0x48]
push 0x10
push esi
push esi
call fcn.00433ef4
mov edi, dword [ebp + 0x28]
add esp, 0xc
inc dword [ebp - 0x30]
add dword [ebp + 0x28], 0x80
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
mov edi, 0x80
jmp 0x4523cb
inc dword [ebp - 0x30]
add dword [ebp + 0x28], edi
cmp dword [ebp - 0x54], 0
je 0x452400
mov eax, dword [ebp + 0x48]
lea ecx, [eax + 0x80]
jmp 0x4523e5
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x4523eb
cmp eax, ecx
jb 0x4523dc
jmp 0x4523f2
mov dword [ebp - 0x14], 1
push edi
push 0
push dword [ebp + 0x48]
call fcn.0047b210
add esp, 0xc
cmp dword [ebp - 0x14], 0
je 0x45240d
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp + 0x24], eax
inc dword [ebp + 0x18]
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x48], edi
cmp eax, dword [ebp + 0x4c]
jl 0x452358
push dword [ebp + 0x14]
call fcn.00431f07
lea eax, [ebx - 0x174]
push eax
call fcn.00431f07
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x24], eax
pop ecx
pop ecx
jg 0x452441
inc eax
mov dword [ebp + 0x24], eax
cmp byte [ebp + 0x47], 0
mov eax, dword [ebp + 0x4c]
je 0x45244d
mov dword [ebp + 0x24], eax
shl eax, 7
push 0
push eax
lea eax, [esi + ebx]
push eax
call fcn.0046fb07
mov ecx, dword [ebp - 0xa4]
mov dword [ebx + 0x58], eax
mov dword [ecx + 0x58], eax
mov eax, dword [ebx + 0xc]
and dword [ebx + 0x10], 0
add esp, 0xc
cmp eax, 0x20000
mov dword [ebp - 0x54], eax
ja 0x453021
push 0
push eax
push ebx
call fcn.0046fb07
mov edi, dword [ebp - 0xa4]
push 0
push dword [ebp - 0x54]
mov dword [ebx + 0x10], eax
and dword [edi + 0x10], 0
push edi
call fcn.0046fb07
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x24]
shl eax, 7
xor edx, edx
lea eax, [eax + esi - 1]
div esi
add esp, 0x18
mov edi, eax
imul edi, esi
cmp byte [ebp + 0x47], 0
je 0x4524dc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
push esi
push dword [ebp + 0x14]
lea ecx, [ebp + 0x6c]
call fcn.0042eafb
xor eax, eax
push eax
push dword [ebp - 0x178]
push dword [ebp - 0x17c]
push eax
push esi
call fcn.0047b320
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
lea eax, [esi + edi]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.0042eafb
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x90]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.0047b320
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x6c]
call fcn.0042eafb
push 0
push dword [ebp - 0x90]
xor eax, eax
push dword [ebp - 0x94]
push eax
push esi
call fcn.0047b320
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
push esi
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.0042eafb
cmp byte [ebp + 0x5f], 0
je 0x452588
push dword [ebp + 0x6c]
mov byte [ebp + 0x5f], 0
call fcn.00431ecc
pop ecx
cmp byte [ebp + 0x5d], 0
je 0x4530c6
lea ecx, [ebp + 0x14]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
mov ebx, 0x200
cmp byte [ebp + 0x5f], 0
je 0x4525b6
push dword [ebp + 0x6c]
call fcn.00431ecc
pop ecx
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
xor edi, edi
xor eax, eax
test byte [ebp + 0x5d], 0x20
jne 0x4525ce
cmp dword [ebp - 8], 0xc
je 0x4525ea
push 0x490718
push 1
push edi
push dword [ebp - 0xac]
call fcn.00437e5e
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x1f], 0
je 0x4525f9
cmp dword [ebp - 0x24], edi
jne 0x450729
cmp byte [ebp + 0x2e], 0x10
mov esi, eax
je 0x452607
mov esi, dword [ebp - 0xa8]
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, edi
je 0x453091
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x453091
cmp dword [ebp - 4], edi
jge 0x452661
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
jne 0x452661
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, edi
jmp 0x453048
mov ebx, 0x1b8
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0xf8], edi
cmp word [esi], di
je 0x45279e
push esi
push 0x496e5c
call fcn.0042fb17
test al, al
pop ecx
pop ecx
jne 0x45279e
push esi
push 0x492944
call fcn.0042fb17
test al, al
pop ecx
pop ecx
jne 0x45279e
push esi
push 0x496e58
call fcn.0042fb17
test al, al
pop ecx
pop ecx
je 0x4526d2
mov dword [ebp + 0xc], 0x4a5308
mov dword [ebp + 0x20], 0x190
jmp 0x4527ba
push esi
push 0x496e54
call fcn.0042fb17
test al, al
pop ecx
pop ecx
je 0x4526f6
mov dword [ebp + 0xc], 0x4a5498
mov dword [ebp + 0x20], 0x180
jmp 0x4527ba
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
mov dword [ebp + 0x20], edi
cmp word [esi], 0x2a
jne 0x452726
lea eax, [ebp - 0x44]
push eax
inc esi
lea eax, [ebp - 0x74]
inc esi
push eax
mov dword [ebp - 0x74], esi
call fcn.004385d3
mov esi, dword [ebp - 0x74]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x452726
inc esi
inc esi
cmp word [esi], 0x23
jne 0x452764
push esi
lea ecx, [ebp - 8]
call fcn.0043ddc9
push edi
lea eax, [ebp - 0x100]
push eax
push str.EXEDATA
push dword [ebp - 8]
push edi
call fcn.004108f8
add esp, 0x14
lea ecx, [ebp - 8]
mov dword [ebp + 0xc], eax
call fcn.0042eb98
mov eax, dword [ebp - 0xfc]
mov dword [ebp + 0x20], eax
jmp 0x45277b
lea eax, [ebp + 0x20]
push eax
push edi
push esi
call fcn.0040b9de
add esp, 0xc
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x40], edi
jl 0x4527a8
jg 0x452787
cmp dword [ebp - 0x44], edi
jb 0x4527a8
cmp edi, dword [ebp - 0x40]
jl 0x4527a8
jg 0x452796
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x44]
jbe 0x4527a8
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x20], eax
jmp 0x4527a8
mov dword [ebp + 0xc], 0x4a5618
mov dword [ebp + 0x20], ebx
cmp dword [ebp + 0x20], edi
jbe 0x45292a
cmp dword [ebp + 0xc], edi
je 0x45292a
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp - 0xac]
lea ecx, [ebp + 0x6c]
call fcn.004041e7
cmp dword [ebp + 0x6c], edi
je 0x45292a
mov esi, dword [ebp + 0x20]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 4]
call fcn.00433b18
mov ebx, dword [ebp + 4]
push 0
lea eax, [ebp - 0x2c]
push eax
add ebx, 0x200
and ebx, edi
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x452868
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x452831
inc esi
lea ecx, [ebp + 4]
call fcn.0042eb98
lea ecx, [ebp - 0x100]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
test eax, eax
jmp 0x45261e
push esi
push edi
push ebx
call fcn.0047b530
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je 0x452898
lea ecx, [ebp + 4]
call fcn.0042eb98
lea ecx, [ebp - 0x100]
jmp 0x452ff0
mov ecx, dword [ebp + 0x20]
mov eax, 0x1b8
cmp ecx, eax
jle 0x4528a6
mov ecx, eax
push ecx
push dword [ebp + 0xc]
push edi
call fcn.0047b530
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x20]
add esp, 0xc
cmp eax, 0x200
jbe 0x4528e9
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.0047b530
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x4c], 1
call fcn.00433ef4
add esp, 0xc
test eax, eax
jne 0x45291b
push eax
lea eax, [ebp - 0x2c]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x4c], eax
call fcn.00431eb4
pop ecx
xor eax, eax
cmp dword [ebp + 0x4c], eax
sete al
mov esi, eax
jmp 0x452831
lea ecx, [ebp - 0x100]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, edi
je 0x45295d
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x453091
cmp dword [ebp + 0x60], edi
jle 0x45263d
cmp dword [ebp - 4], edi
jge 0x45297f
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x45263d
push dword [ebp - 0x78]
or dword [ebp - 8], 0xffffffff
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x68]
push eax
push dword [ebp - 0x20]
lea eax, [ebp + 8]
push dword [ebp + 0x60]
mov dword [ebp - 0x68], edi
push dword [ebp - 4]
mov dword [ebp - 0x64], edi
push eax
call fcn.00443e20
add esp, 0x1c
cmp dword [ebp - 8], edi
jle 0x452935
mov dword [ebp + 0x28], ebx
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xec], edi
cmp word [esi], di
je 0x452b19
push esi
push 0x496e5c
call fcn.0042fb17
test al, al
pop ecx
pop ecx
jne 0x452b19
push esi
push 0x492944
call fcn.0042fb17
test al, al
pop ecx
pop ecx
jne 0x452b19
push esi
push 0x496e54
call fcn.0042fb17
test al, al
pop ecx
pop ecx
je 0x452a0e
push 8
jmp 0x452b1b
push esi
push str.nt6fat
call fcn.0042fb17
test al, al
pop ecx
pop ecx
jne 0x452b15
push esi
push str.winfat
call fcn.0042fb17
test al, al
pop ecx
pop ecx
jne 0x452b15
push esi
push 0x496e58
call fcn.0042fb17
test al, al
pop ecx
pop ecx
je 0x452a50
push 6
jmp 0x452b1b
push esi
push str.nt5fat
call fcn.0042fb17
test al, al
pop ecx
pop ecx
je 0x452a68
push 5
jmp 0x452b1b
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
mov dword [ebp + 0x28], edi
cmp word [esi], 0x2a
jne 0x452a98
lea eax, [ebp - 0x44]
push eax
inc esi
lea eax, [ebp + 0xc]
inc esi
push eax
mov dword [ebp + 0xc], esi
call fcn.004385d3
mov esi, dword [ebp + 0xc]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x452a98
inc esi
inc esi
cmp word [esi], 0x23
jne 0x452ad6
push esi
lea ecx, [ebp - 8]
call fcn.0043ddc9
push edi
lea eax, [ebp - 0xf4]
push eax
push str.EXEDATA
push dword [ebp - 8]
push edi
call fcn.004108f8
add esp, 0x14
lea ecx, [ebp - 8]
mov dword [ebp + 0xc], eax
call fcn.0042eb98
mov eax, dword [ebp - 0xf0]
mov dword [ebp + 0x28], eax
jmp 0x452aed
lea eax, [ebp + 0x28]
push eax
push edi
push esi
call fcn.0040b9de
add esp, 0xc
mov dword [ebp + 0xc], eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0x40], edi
jl 0x452b0e
jg 0x452af9
cmp dword [ebp - 0x44], edi
jb 0x452b0e
cmp edi, dword [ebp - 0x40]
jl 0x452b0e
jg 0x452b08
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0x44]
jbe 0x452b0e
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x28], eax
cmp dword [ebp + 0xc], edi
jne 0x452b44
jmp 0x452b8d
push 7
jmp 0x452b1b
push 9
pop eax
push edi
lea ecx, [ebp - 0xf4]
push ecx
push str.INDATA
push eax
push edi
call fcn.004108f8
add esp, 0x14
cmp dword [ebp + 0x28], edi
mov dword [ebp + 0xc], eax
je 0x452b8d
mov eax, dword [ebp - 0xf0]
mov dword [ebp + 0x28], eax
cmp dword [ebp + 0x28], edi
jbe 0x452b8d
cmp dword [ebp + 0xc], edi
je 0x452b8d
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp - 0xac]
lea ecx, [ebp + 0x6c]
call fcn.004041e7
cmp dword [ebp + 0x6c], edi
je 0x452b8d
push edi
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x10
cmp eax, dword [ebp - 0x68]
jne 0x452b8d
cmp edx, dword [ebp - 0x64]
je 0x452b98
lea ecx, [ebp - 0xf4]
jmp 0x452930
mov esi, dword [ebp + 0x28]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 4]
call fcn.00433b18
mov ebx, dword [ebp + 4]
push 0
lea eax, [ebp - 0x2c]
push eax
add ebx, 0x200
and ebx, edi
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x452bee
lea ecx, [ebp + 4]
call fcn.0042eb98
lea ecx, [ebp - 0xf4]
jmp 0x452ff0
push esi
push edi
push ebx
call fcn.0047b530
push 0
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.0042fa51
add esp, 0x1c
cmp eax, dword [ebp - 0x68]
jne 0x452bdb
cmp edx, dword [ebp - 0x64]
jne 0x452bdb
mov eax, dword [ebp + 0x28]
push 3
push dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
push edi
call fcn.0047b530
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x24], eax
jle 0x452c34
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.0047b530
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x28]
add esp, 0xc
cmp eax, 0x200
jbe 0x452c84
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.0047b530
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x4c], 1
call fcn.00433ef4
add esp, 0xc
test eax, eax
jne 0x452cb6
push eax
lea eax, [ebp - 0x2c]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x4c], eax
call fcn.00431eb4
pop ecx
xor eax, eax
cmp dword [ebp + 0x4c], eax
lea ecx, [ebp + 4]
sete al
mov esi, eax
call fcn.0042eb98
lea ecx, [ebp - 0xf4]
jmp 0x45283f
push 0x103c
lea ecx, [ebp + 8]
call fcn.00433c6b
mov ecx, dword [ebp - 0xb0]
mov ax, word [ecx]
cmp ax, di
mov ebx, dword [ebp + 8]
lea esi, [ebx + 0x2000]
mov dword [ebp + 0x24], 0x490718
je 0x452d42
cmp word [ecx + 2], 0x3a
jne 0x452d42
movzx eax, ax
push eax
push str.._c:
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x452d34
cmp dword [ebp - 0x6c], 0x10
jne 0x452d8b
mov dword [ebp + 0x24], 0x4906f8
cmp eax, 5
jne 0x452d8b
mov dword [ebp + 0x24], 0x490708
jmp 0x452d8b
mov eax, dword [ebp - 4]
cmp eax, edi
jl 0x452d8b
cmp dword [ebp - 0x6c], 8
jne 0x452d65
push eax
push str..CDROM_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov dword [ebp + 0x24], 0x490708
jmp 0x452d88
cmp dword [ebp - 0x6c], 0x10
jne 0x452d7b
and eax, 0xfff
mov esi, eax
mov dword [ebp + 0x24], 0x4906f8
jmp 0x452d8b
push eax
push str..PhysicalDrive_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push dword [ebp + 0x24]
push 0x20
push ebx
push esi
call fcn.00437e5e
add esp, 0x10
push ebx
jmp 0x452f14
cmp byte [ebp + 3], 0
je 0x452dab
cmp dword [ebp - 0x34], edi
jl 0x452dfd
mov al, byte [ebp]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x34]
or eax, dword [ebp - 0xe0]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00443a94
pop ecx
pop ecx
jmp 0x452dfd
cmp dword [ebp - 0x34], edi
jl 0x452dfd
cmp byte [ebp - 0xe], 0
je 0x452dde
cmp dword [ebp + 0x60], edi
jl 0x452dfd
push dword [ebp - 0x78]
movsx eax, byte [ebp]
or eax, dword [ebp - 0x20]
push edi
push edi
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 8]
push dword [ebp - 0x34]
push eax
call fcn.00443e20
add esp, 0x1c
mov ecx, dword [ebp - 0x84]
cmp ecx, edi
jle 0x452f11
mov eax, dword [ebp + 8]
dec ecx
mov dword [ebp - 0x98], ecx
push edi
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x80]
push eax
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x98]
push eax
mov dword [ebp + 8], edi
call fcn.0043637f
lea ecx, [ebp - 0x84]
call fcn.0042eb98
jmp 0x452f11
mov eax, dword [ebp - 0xb0]
mov ax, word [eax]
movzx esi, ax
cmp esi, 0x61
jl 0x452e5c
cmp esi, 0x7a
jg 0x452e5c
sub esi, 0x20
cmp esi, 0x41
jl 0x452f11
cmp esi, 0x5a
jg 0x452f11
cmp dword [ebp - 0x6c], edi
jle 0x452ee5
push 0x10010e
lea ecx, [ebp - 0x24]
call fcn.00433b18
mov ebx, dword [ebp - 0x24]
push 0x10e
add ebx, 0x100000
push edi
push ebx
call fcn.0047b210
mov eax, esi
shl eax, 0x10
or eax, dword [ebp - 0x6c]
push eax
push dword [ebp - 0x24]
push ebx
call fcn.0044377f
lea eax, [esi + esi*4 - 0x145]
lea ebx, [ebx + eax*2]
add esp, 0x18
cmp word [ebx + 4], di
jle 0x452edb
push 0x64
lea ecx, [ebp + 8]
call fcn.00433c6b
movsx eax, word [ebx + 2]
push esi
push eax
push str._d__c:
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x24]
call fcn.0042eb98
jmp 0x452f11
cmp ax, di
mov ecx, dword [ebp + 8]
mov word [ecx], ax
je 0x452f11
push dword [ebp - 0x78]
mov eax, dword [ebp - 0x20]
push edi
and eax, 0xfffffffd
push edi
or eax, 0xc
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 8]
push dword [ebp - 0x34]
push eax
call fcn.00443e20
add esp, 0x1c
push dword [ebp + 8]
push dword [ebp - 0x70]
mov ecx, dword [ebp - 0x80]
call fcn.004335ed
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, edi
jmp 0x453086
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea ecx, [ebp + 0x64]
call fcn.0042eb98
jmp 0x452607
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, edi
je 0x452f80
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0xdc]
jmp 0x453091
lea ecx, [ebp - 0xc]
jmp 0x452ff0
lea ecx, [ebp - 0xc]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, ebx
jmp 0x453048
lea ecx, [ebp - 0xc]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, esi
jmp 0x453048
lea ecx, [ebp + 4]
call fcn.0042eb98
lea ecx, [ebp + 0x14]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
test eax, eax
jmp 0x452954
lea ecx, [ebp + 4]
call fcn.0042eb98
lea ecx, [ebp + 0x14]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
test eax, eax
je 0x44fda5
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44fda5
lea ecx, [ebp + 0x14]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
jmp 0x451ce4
cmp eax, ebx
je 0x45308f
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
lea ecx, [ebp - 0x5c]
call fcn.0042eb98
lea ecx, [ebp - 0x70]
call fcn.0042eb98
lea ecx, [ebp - 0xb0]
call fcn.0042eb98
lea ecx, [ebp - 0x16c]
call fcn.0042eb98
lea ecx, [ebp + 8]
call fcn.0042eb98
mov eax, esi
jmp 0x453216
lea ecx, [ebp + 0x14]
call fcn.0042eb98
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
test eax, eax
jmp 0x453086
push 0x1000
lea ecx, [ebp + 8]
call fcn.00433c6b
cmp dword [ebp - 4], edi
jl 0x45318a
push 0x10010e
lea ecx, [ebp - 0x84]
call fcn.00433b18
mov ebx, dword [ebp - 0x84]
push 0x10e
lea esi, [ebx + 0x100000]
push edi
push esi
call fcn.0047b210
push dword [ebp - 0x6c]
push ebx
push esi
call fcn.0044377f
add esp, 0x18
xor ebx, ebx
lea eax, [esi + 2]
movsx ecx, word [eax]
cmp ecx, dword [ebp - 4]
je 0x453152
inc ebx
add eax, 0xa
cmp ebx, 0x1a
jle 0x45313f
jmp 0x45317d
push 0x64
lea ecx, [ebp + 8]
call fcn.00433c6b
lea eax, [ebx + ebx*4]
lea esi, [esi + eax*2]
movsx eax, word [esi + 8]
push eax
movsx eax, word [esi + 2]
push eax
push str._d___c_
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x84]
call fcn.0042eb98
jmp 0x4531b0
cmp byte [ebp + 3], 0
jne 0x4531b0
cmp byte [ebp + 0x52], 4
mov eax, 0x490708
je 0x4531a0
mov eax, 0x4906f8
push eax
push edi
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00437e5e
add esp, 0x10
push dword [ebp + 8]
mov ecx, dword [ebp - 0x80]
push dword [ebp - 0x70]
call fcn.004335ed
lea ecx, [ebp + 0x64]
call fcn.0042eb98
lea ecx, [ebp + 0x30]
call fcn.00431f57
lea ecx, [ebp + 0x6c]
call fcn.00402ac9
mov eax, 0x4a7254
cmp eax, edi
je 0x4531e6
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x5c]
call fcn.0042eb98
lea ecx, [ebp - 0x70]
call fcn.0042eb98
lea ecx, [ebp - 0xb0]
call fcn.0042eb98
lea ecx, [ebp - 0x16c]
call fcn.0042eb98
lea ecx, [ebp + 8]
call fcn.0042eb98
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8