Function at 0x458dd1
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, 0x384
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0x12c], ecx
call fcn.004378b6
pop ecx
push 5
lea ecx, [ebp]
call fcn.0043d3c3
push 0x14
lea ecx, [ebp - 0x1d4]
call fcn.0043d3c3
lea ecx, [ebp - 0x98]
call fcn.0043d3a5
lea ecx, [ebp - 0xc8]
call fcn.0043d3a5
lea ecx, [ebp - 0xa0]
call fcn.0043d3a5
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x34], eax
push 0x2c
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 8], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0x84], esi
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x38], esi
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x108], esi
mov byte [ebp - 0x39], bl
mov byte [ebp - 0x11], bl
mov byte [ebp - 0x5e], bl
mov byte [ebp - 0x5d], bl
mov byte [ebp + 0x3d], bl
mov byte [ebp + 0x53], bl
mov byte [ebp - 9], bl
mov byte [ebp - 0x55], bl
mov dword [ebp - 0x88], ebx
call fcn.0043fd51
mov eax, dword [ebp - 0xc8]
mov word [eax], bx
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x458f0d
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x34], eax
push 0x2c
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0043fd51
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x30], 0
mov byte [ebp + 0x4b], 0
mov byte [ebp - 0x7d], 0
mov byte [ebp + 0x27], 0
mov byte [ebp - 0x25], 0
mov byte [ebp - 0x7a], 0
mov byte [ebp + 0x31], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x3c], 0
mov byte [ebp + 0x5a], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x3f], 0
mov byte [ebp - 0x3b], 0
mov byte [ebp - 0x13], 0
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x9c], 0
mov byte [ebp + 0x1f], 0
mov dword [ebp + 0x14], 0xfffff000
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x1a8], esi
je 0x459819
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x458fa4
or byte [ebp + 0x30], 1
jmp 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x458fc4
or byte [ebp + 0x30], 2
jmp 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x458fe7
or byte [ebp - 0xea], 1
jmp 0x459798
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45900a
or byte [ebp - 0xea], 2
jmp 0x459798
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.0043f0e5
add esp, 0xc
test al, al
jne 0x4597c4
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0043f0e5
add esp, 0xc
test al, al
jne 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459060
or dword [ebp - 0x2c], 1
jmp 0x459798
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459082
or dword [ebp - 0x2c], 2
jmp 0x459798
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4ad120
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4590a2
or dword [ebp - 0x2c], 0x10
jmp 0x459798
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4590c1
or dword [ebp - 0x2c], edi
jmp 0x459798
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ad114
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4590e1
mov byte [ebp + 0x3c], 1
jmp 0x459798
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459100
mov byte [ebp + 0x5a], 1
jmp 0x459798
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459120
mov byte [ebp + 0x5a], 0x21
jmp 0x459798
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45913f
mov byte [ebp + 0x5b], 1
jmp 0x459798
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45915f
mov byte [ebp + 0x5b], 0x21
jmp 0x459798
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45917e
mov byte [ebp + 0x3f], 1
jmp 0x459798
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45919d
mov byte [ebp - 0x5d], 1
jmp 0x459798
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4591bc
mov byte [ebp - 0x3b], 1
jmp 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4a6c58
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4591dc
mov byte [ebp - 0x5e], 1
jmp 0x459798
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ad0e0
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4591fc
mov byte [ebp - 0x55], 1
jmp 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45921c
or byte [ebp - 9], 0x40
jmp 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45923c
mov byte [ebp + 0x53], 3
jmp 0x459798
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45925b
inc edi
mov byte [ebp + 0x53], 3
inc edi
jmp 0x459273
push 6
push edi
push str._lock:
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4592db
mov byte [ebp + 0x53], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x4592ac
mov eax, ecx
call fcn.004820ac
test al, al
jne 0x4592ac
push ecx
call fcn.00412674
add esp, 4
test al, al
jne 0x4592ac
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x20], edi
call fcn.00405061
jmp 0x45940e
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004050a5
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004050a5
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
pop ecx
jmp 0x459798
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4592fb
mov byte [ebp + 0x53], 1
jmp 0x459798
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.0043f0e5
add esp, 0xc
test al, al
jne 0x459233
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45933c
mov byte [ebp + 0x53], 0xf0
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], esi
jmp 0x459798
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x4ad0a0
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4593a1
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45936f
cmp ax, 0x3d
je 0x45936f
call fcn.004820ac
test al, al
je 0x4593a1
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0x4c], ebx
je 0x45938a
mov dword [ebp - 0x94], 0x4ad098
jmp 0x4592cc
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
mov eax, dword [eax]
mov dword [ebp - 0x94], eax
jmp 0x459404
push 4
push edi
push str._pbr
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x459427
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4593d1
cmp ax, 0x3d
je 0x4593d1
call fcn.004820ac
test al, al
je 0x459427
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x94], ebx
push eax
je 0x4593f6
mov dword [ebp - 0x4c], 0x4a44be
call fcn.00405061
pop ecx
jmp 0x4592cc
add dword [ebp + 0x78], 2
call fcn.004378b6
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405061
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x4592cc
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x4592cc
push 9
push edi
push str._alignend
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4594ae
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x459457
cmp ax, 0x3d
je 0x459457
call fcn.004820ac
test al, al
je 0x4594ae
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x45949f
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.00412674
add esp, 4
test al, al
je 0x45977c
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp + 0x2c], ecx
call fcn.00441bc2
cmp dword [ebp - 0x50], ebx
pop ecx
pop ecx
jg 0x45977c
jl 0x45949f
cmp dword [ebp - 0x54], ebx
ja 0x45977c
mov dword [ebp - 0x54], 0xfffffffe
mov dword [ebp - 0x50], esi
jmp 0x45977c
push 6
push edi
push str._align
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45954d
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4594e2
cmp ax, 0x3d
je 0x4594e2
call fcn.004820ac
test al, al
je 0x45954d
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.00405061
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x45950c
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
jmp 0x459798
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.00412674
add esp, 4
test al, al
je 0x459798
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp + 0x2c], ecx
call fcn.00441bc2
cmp dword [ebp - 0x74], ebx
pop ecx
pop ecx
jg 0x459798
jl 0x459501
cmp dword [ebp - 0x78], ebx
ja 0x459798
jmp 0x459501
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45956f
mov byte [ebp - 0x7d], 1
jmp 0x459798
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4a7190
call fcn.0043f0e5
add esp, 0xc
test al, al
jne 0x459794
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0043f0e5
add esp, 0xc
test al, al
jne 0x459794
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4595c9
or dword [ebp - 0x2c], 0x20
mov byte [ebp - 0x25], 1
jmp 0x459798
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x459602
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044880d
test eax, eax
pop ecx
pop ecx
jl 0x45ce4e
mov byte [ebp + 0x1f], 1
jmp 0x459798
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x4596a1
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], edi
call fcn.00407fcf
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00412674
add esp, 0xc
test al, al
je 0x45965c
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00441bc2
pop ecx
pop ecx
mov eax, dword [ebp + 0x54]
cmp word [eax], 0x3a
jne 0x45967b
add dword [ebp + 0x54], 2
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00441bc2
pop ecx
pop ecx
mov eax, dword [ebp + 0x54]
cmp word [eax], 0x3a
jne 0x459798
add dword [ebp + 0x54], 2
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00441bc2
jmp 0x45978e
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.00438aa1
add esp, 0xc
test al, al
jne 0x4597a4
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x459702
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x40], 0x42
call fcn.0044880d
mov al, byte [ebp - 0x40]
add esp, 0xc
mov byte [ebp - 0x9c], al
jmp 0x459798
push 4
push dword [ebp + 0x78]
push str._iv
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x45972e
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x1a8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044880d
jmp 0x45978e
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459750
mov dword [ebp - 0x88], 8
jmp 0x459798
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459773
mov dword [ebp - 0x88], 0x10
jmp 0x459798
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x4597a4
lea eax, [ebp + 0x78]
push eax
call fcn.00405061
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
pop ecx
jmp 0x4592d5
mov byte [ebp + 0x27], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x458f84
cmp dword [ebp - 0x54], 0xfffffffe
jne 0x45980e
cmp dword [ebp - 0x50], esi
jne 0x45980e
mov eax, dword [ebp - 0x78]
cmp eax, 0xfffffff7
jne 0x459805
cmp dword [ebp - 0x74], esi
jne 0x459805
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
jmp 0x459819
push str.21:INDATA
lea ecx, [ebp - 0x9c]
call fcn.00445746
push dword [ebp + 0x78]
lea ecx, [ebp - 0x9c]
call fcn.0043d411
push dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x12c]
call fcn.0042edd5
lea ecx, [ebp - 0x9c]
mov esi, eax
call fcn.00437884
jmp 0x45d02e
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x78], 0xfffffff7
jne 0x459823
cmp dword [ebp - 0x74], esi
jne 0x459823
mov dword [ebp - 0x78], 1
mov dword [ebp - 0x74], ebx
cmp dword [ebp - 0x54], 0xfffffff7
jne 0x45983a
cmp dword [ebp - 0x50], esi
jne 0x45983a
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x50], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4ad01c
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45993b
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459876
mov byte [ebp + 0x4b], 1
jmp 0x45993b
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459895
mov byte [ebp + 0x4b], 2
jmp 0x45993b
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ad010
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4598b5
mov byte [ebp + 0x4b], 3
jmp 0x45993b
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4598dc
mov byte [ebp + 0x4b], 4
mov dword [ebp - 0x88], 8
jmp 0x45993b
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459903
mov byte [ebp + 0x4b], 5
mov dword [ebp - 0x88], 0x10
jmp 0x45993b
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x459920
mov byte [ebp + 0x4b], 6
jmp 0x45993b
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45993b
mov byte [ebp + 0x4b], 7
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x32], 0
call fcn.0043f0e5
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x45995f
mov byte [ebp + 0x3d], 1
mov dword [ebp + 0x60], edi
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45997d
mov byte [ebp + 0x32], 1
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45999b
mov byte [ebp + 0x32], 0x20
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4599b9
mov byte [ebp + 0x32], 0x10
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00405061
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x98]
call fcn.0043d4c9
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x459a03
mov dword [ebp - 0x84], 0x80
jmp 0x459a1d
cmp ax, 0x2d
jne 0x459a27
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x459a27
mov dword [ebp - 0x84], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.00405061
pop ecx
xor eax, eax
mov dword [ebp - 0x1fc], ebx
lea edi, [ebp - 0x1f8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x4beadc
push edi
mov dword [ebp - 0x184], 0xebd0a0a2
mov word [ebp - 0x180], 0xb9e5
mov word [ebp - 0x17e], 0x4433
mov byte [ebp - 0x17c], 0x87
mov byte [ebp - 0x17b], 0xc0
mov byte [ebp - 0x17a], 0x68
mov byte [ebp - 0x179], 0xb6
mov byte [ebp - 0x178], 0xb7
mov byte [ebp - 0x177], 0x26
mov byte [ebp - 0x176], 0x99
mov byte [ebp - 0x175], 0xc7
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], ebx
mov dword [ebp - 0x168], ebx
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x40], str.MS_Basic_Data
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x16c], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x3f], 0
jne 0x459b0d
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044880d
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x459b34
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.00412674
add esp, 4
test al, al
jne 0x459b34
mov ecx, edx
mov byte [ebp - 0x7a], 1
mov dword [ebp + 0x78], ecx
jmp 0x459b34
push ebx
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004498f9
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x140], eax
jne 0x459b31
push edi
jmp 0x45d026
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x459b44
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x39], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x459b55
lea eax, [ebp + 0x78]
push eax
call fcn.00407fcf
jmp 0x459b69
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00441ced
pop ecx
mov dword [ebp - 0x164], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x7c], 1
jne 0x459b80
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x7c], 0
cmp word [eax], 0x2d
jne 0x459b91
lea eax, [ebp + 0x78]
push eax
call fcn.00407fcf
jmp 0x459ba5
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00441ced
pop ecx
mov dword [ebp - 0x16c], eax
cmp byte [ebp + 0x3f], 0
pop ecx
je 0x459bdc
push ebx
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004498f9
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00441bc2
add esp, 0x14
mov dword [ebp - 0x168], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1ac], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x459c33
cmp byte [ebp + 0x3f], 0
je 0x459c33
cmp cx, bx
je 0x459c33
mov dword [ebp - 0x1b8], eax
push ebx
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.00418cf5
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1ac]
add esp, 0xc
mov dword [ebp - 0x144], 1
mov dword [ebp - 0x40], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x4b], 1
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x26], 0
mov byte [ebp - 0x2d], 0
je 0x459c4e
cmp byte [ebp + 0x4b], 4
jge 0x459c4e
mov dword [ebp - 8], ebx
mov ebx, dword [ebp - 0x98]
push 5
push ebx
mov edi, ebx
push str._img
mov dword [ebp + 0x78], edi
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x459d1c
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edx, ecx
jne 0x459ccf
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp + 0x28]
add ecx, 2
push eax
mov dword [ebp + 0x28], ecx
call fcn.00441ced
mov edx, dword [ebp + 0x28]
cmp word [edx], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x2d], 1
jne 0x459cca
lea eax, [ebp - 0xd8]
push eax
inc edx
lea eax, [ebp + 0x28]
inc edx
push eax
mov dword [ebp + 0x28], edx
call fcn.00441ced
mov edx, dword [ebp + 0x28]
cmp word [edx], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x2d], 0x11
jne 0x459cca
inc edx
inc edx
mov ecx, edx
mov dword [ebp + 0x78], ecx
xor edi, edi
jmp 0x459ce9
mov eax, edi
call fcn.004820ac
test al, al
jne 0x459cf1
cmp di, 0x23
je 0x459cf1
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov di, word [ecx]
test di, di
jne 0x459cd3
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x459d0d
push ecx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043d4c9
mov dword [ebp - 8], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.004378b6
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x459d5c
push 2
push ebx
push 0x4acfa8
call fcn.00438aa1
add esp, 0xc
test al, al
je 0x459d36
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043cfd3
test al, al
je 0x459d54
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439ff7
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0x12]
push 0
push 0x200
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.0048f820
mov dword [ebp - 0x68], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x64], edx
je 0x459d8d
cmp ax, 0x3a
jne 0x459e2c
inc edi
inc edi
push 2
push edi
push 0x4acfa4
mov dword [ebp + 0x78], edi
call fcn.00438aa1
push 2
push edi
push 0x4acfa0
mov byte [ebp + 0x67], al
call fcn.00438aa1
mov byte [ebp + 0x31], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x31]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x26], al
jne 0x459dd9
cmp word [edi], 0x2b
jne 0x459dd9
inc edi
inc edi
mov byte [ebp - 0x13], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x31], 0
jne 0x459dfd
mov ax, word [edi]
cmp ax, 0x40
je 0x459df4
cmp ax, 0x2d
je 0x459df4
cmp ax, 0x3d
jne 0x459dfd
or dword [ebp - 0x2c], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043cfd3
test al, al
je 0x459e2c
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044880d
test eax, eax
pop ecx
pop ecx
jle 0x459e2c
cmp dword [ebp + 0x60], 0
mov byte [ebp - 0x11], 1
jne 0x459e30
mov byte [ebp + 0x67], 1
jmp 0x459e32
cmp dword [ebp + 0x60], 0
jg 0x459e4e
cmp byte [ebp + 0x4b], 0
jg 0x459e4e
cmp dword [ebp - 0x94], 0
jne 0x459e4e
cmp dword [ebp - 0x4c], 0
jne 0x459e4e
xor ecx, ecx
mov dword [ebp + 0x54], ecx
jmp 0x459e57
mov dword [ebp + 0x54], 1
xor ecx, ecx
cmp byte [ebp + 0x53], 0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
je 0x459e78
cmp dword [ebp + 0x54], ecx
jne 0x459e78
cmp word [ebx], cx
jne 0x459e78
mov eax, 0xfffc0000
mov dword [ebp - 8], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xa0]
lea edi, [ebp - 0x294]
mov word [ebp - 0x294], cx
cmp word [eax], cx
mov dword [ebp - 0xb0], edi
je 0x459e9e
mov edi, eax
mov dword [ebp - 0xb0], edi
push dword [ebp - 8]
lea eax, [ebp - 0x294]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp - 0x90]
add esp, 0xc
or eax, dword [ebp - 0x8c]
jne 0x459eeb
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x459eeb
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x2c]
add edi, 0x22
push eax
mov dword [ebp + 0x2c], edi
call fcn.004402ad
pop ecx
pop ecx
cmp byte [ebp + 0x32], 0
jne 0x459efd
cmp byte [ebp + 0x5a], 0
jne 0x459efd
cmp byte [ebp + 0x5b], 0
je 0x459f13
cmp dword [ebp - 8], 0
jge 0x459f13
cmp dword [ebp - 0x18], 0
jge 0x459f13
push 0x4beadc
jmp 0x45ce48
xor ebx, ebx
cmp byte [ebp + 0x53], bl
mov edi, 0x80070057
mov dword [ebp + 0x6c], ebx
mov dword [ebp - 0x38], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0xa4], edi
mov byte [ebp + 0x68], bl
je 0x459fec
cmp dword [ebp - 0x18], ebx
jge 0x459f4f
cmp dword [ebp - 0x44], esi
jl 0x459f4f
jg 0x459f46
cmp dword [ebp - 0x48], esi
jbe 0x459f4f
cmp dword [ebp - 0x20], ebx
je 0x459fec
mov eax, dword [ebp - 0x20]
cmp eax, ebx
je 0x459f87
cmp word [eax], 0x2a
jne 0x459f87
xor eax, eax
mov al, byte [ebp + 0x53]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0x18]
call fcn.00449aa7
pop ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 4], eax
xor eax, eax
or byte [0x4be2e0], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
cmp dword [ebp - 0x18], ebx
jge 0x459f9c
cmp dword [ebp - 0x44], esi
jl 0x459f9c
jg 0x459f98
cmp dword [ebp - 0x48], esi
jbe 0x459f9c
cmp eax, ebx
je 0x459fec
push eax
xor eax, eax
mov al, byte [ebp + 0x53]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 0x18]
call fcn.00404c82
mov dword [ebp - 4], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x48]
and eax, dword [ebp - 0x44]
add esp, 0x1c
cmp eax, esi
je 0x459fe5
or byte [ebp + 0x68], 0x10
or byte [0x4be2e0], 0x10
jmp 0x459fec
mov byte [0x4be2e0], 0
cmp byte [ebp + 0x1f], 0
jbe 0x45a22f
cmp byte [ebp + 0x3f], 0
jne 0x45a22f
cmp dword [ebp - 8], ebx
jge 0x45a014
mov eax, dword [ebp - 0xa0]
cmp word [eax], bx
je 0x45a20d
mov eax, dword [ebp + 0x14]
cmp eax, ebx
jle 0x45a024
cmp eax, dword [ebp + 0x60]
je 0x45a20d
cmp dword [ebp + 0x60], 4
jg 0x45a20d
cmp byte [ebp + 0x30], 2
jl 0x45a20d
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xb0]
lea ecx, [ebp + 0x6c]
call fcn.004050ca
cmp dword [ebp + 0x6c], ebx
je 0x45a15f
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.00441acc
add esp, 0x10
push 0x600
lea ecx, [ebp + 0x28]
mov dword [ebp - 0x38], eax
call fcn.0043d29b
mov esi, dword [ebp + 0x28]
push ebx
lea eax, [ebp - 0x24]
push eax
add esi, 0x200
and esi, 0xfffffe00
push 0x200
lea edi, [esi + 0x200]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x45a0e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x45a0be
xor esi, esi
inc esi
lea ecx, [ebp + 0x28]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
push 0x4beadc
jmp 0x45c320
push 0x200
push edi
push esi
call fcn.0041255f
dec dword [ebp + 0x14]
dec dword [ebp + 0x60]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + esi + 0x1be]
mov dword [ebp + 0x2c], eax
push ecx
lea eax, [eax + edi + 0x1be]
push eax
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
call fcn.0041255f
mov eax, dword [ebp + 0x2c]
lea eax, [eax + esi + 0x1be]
push 0x10
push eax
lea eax, [ebx + edi + 0x1be]
push eax
call fcn.0041255f
push 0
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x34
test eax, eax
je 0x45a182
lea ecx, [ebp + 0x28]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
push 0x4beadc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45d02e
and dword [ebp - 4], 0
mov ebx, 0x200
push ebx
push edi
push esi
call fcn.0043d677
add esp, 0xc
test eax, eax
jne 0x45a1c5
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x45a1bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x45a1b9
inc eax
mov dword [ebp - 4], eax
push dword [ebp + 0x6c]
call fcn.0043b29d
pop ecx
mov al, byte [ebp + 0x5b]
or al, byte [ebp + 0x3c]
lea ecx, [ebp + 0x28]
or byte [ebp + 0x5a], al
mov al, byte [ebp + 0x5b]
or al, byte [ebp + 0x5a]
or al, byte [ebp + 0x3c]
je 0x45a1e5
and dword [ebp + 0x54], 0
jmp 0x45c1b8
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
push 0x4beadc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 4]
jmp 0x45d02e
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
push 0x4beadc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, edi
jmp 0x45d02e
cmp byte [ebp + 0x32], 0x10
jne 0x45a242
test byte [ebp + 0x5b], 0x20
jne 0x45c1bd
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x53], bl
mov edi, 0x200
je 0x45a299
cmp dword [ebp + 0x54], ebx
jne 0x45a299
cmp byte [ebp + 0x3c], bl
jne 0x45c1bd
cmp byte [ebp + 0x5a], bl
jne 0x45c1bd
cmp byte [ebp + 0x5b], bl
jne 0x45c1bd
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
test eax, eax
je 0x45a28e
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0xa4]
jmp 0x45d02e
push 0x600
lea ecx, [ebp + 0x5c]
call fcn.0043d29b
mov eax, dword [ebp + 0x5c]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp - 0x94], ebx
mov dword [ebp + 0x20], eax
jne 0x45c32b
cmp dword [ebp - 0x4c], ebx
jne 0x45c695
mov cl, byte [ebp + 0x4b]
cmp cl, 6
je 0x45ca7b
cmp cl, 1
je 0x45cb46
cmp cl, 2
je 0x45cb7b
xor eax, eax
cmp cl, 3
mov dword [ebp + 0x4c], eax
je 0x45cbba
cmp cl, 4
je 0x45cef8
cmp cl, 5
je 0x45cef8
cmp cl, 7
je 0x45cc93
cmp byte [ebp + 0x31], al
je 0x45a333
mov dword [ebp - 0x84], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x67], 0
je 0x45a340
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x27], 0
je 0x45a35b
mov dword [ebp - 0x84], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
cmp byte [ebp - 0x12], 0
je 0x45a36a
cmp dword [ebp - 0x18], ebx
jl 0x45ae54
cmp byte [ebp - 0x26], 0
je 0x45a379
cmp dword [ebp + 0x60], ebx
jl 0x45ae54
dec dword [ebp + 0x60]
cmp byte [ebp + 0x3f], 0
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], esi
mov byte [ebp - 0x7b], 0
mov byte [ebp - 0x79], 0
mov dword [ebp + 0x2c], ebx
mov byte [ebp + 0x1f], 0
mov byte [ebp - 0x3a], 0
mov dword [ebp - 0x5c], ebx
jne 0x45a3c9
cmp dword [ebp + 0x10], ebx
jne 0x45a3c9
mov eax, dword [ebp + 0x40]
or eax, dword [ebp + 0x44]
jne 0x45a3c9
mov eax, dword [ebp + 0x34]
or eax, dword [ebp + 0x38]
jne 0x45a3c9
mov byte [ebp + 0x27], 1
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 0x55], 0
je 0x45a5e7
cmp dword [ebp + 0x44], ebx
jl 0x45a5e7
jg 0x45a3ee
cmp dword [ebp + 0x40], ebx
jb 0x45a5e7
cmp dword [ebp + 0x38], ebx
jl 0x45a5e7
jg 0x45a403
cmp dword [ebp + 0x34], 0x11
jb 0x45a5e7
push ebx
push edi
push dword [ebp + 0x44]
mov dword [ebp - 0x20], 1
push dword [ebp + 0x40]
call fcn.0048f820
test byte [ebp + 0x68], 0x11
jne 0x45a436
push ebx
push ebx
push ebx
push 0x2200
push edx
push eax
push dword [ebp - 0x18]
call fcn.00404c82
add esp, 0x1c
or byte [ebp + 0x68], 1
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xb0]
lea ecx, [ebp + 0x6c]
call fcn.004050ca
cmp dword [ebp + 0x6c], ebx
je 0x45cd32
cmp dword [ebp - 0x20], ebx
je 0x45a495
cmp byte [ebp + 0x67], 0
jne 0x45a495
mov eax, dword [ebp - 0x90]
add eax, dword [ebp + 0x40]
mov ecx, dword [ebp - 0x8c]
adc ecx, dword [ebp + 0x44]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.004331ed
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
mov dword [ebp - 0xa4], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.00441acc
add esp, 0x10
cmp byte [ebp + 0x32], 0
mov dword [ebp - 0x38], eax
jne 0x45acb8
cmp dword [ebp + 0x10], 0xff
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], ebx
jg 0x45cd66
cmp byte [ebp + 0x67], 0
jne 0x45a519
cmp dword [ebp + 0x60], ebx
jge 0x45a519
cmp dword [ebp + 0x44], ebx
jg 0x45cd66
jl 0x45a4ed
cmp dword [ebp + 0x40], ebx
jae 0x45cd66
cmp dword [ebp + 0x38], ebx
jg 0x45cd66
jl 0x45a501
cmp dword [ebp + 0x34], ebx
jae 0x45cd66
cmp dword [ebp + 0x10], ebx
jge 0x45cd66
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x170], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], esi
mov dword [ebp + 0x28], eax
jne 0x45a55e
cmp byte [ebp + 0x31], 0
jne 0x45a55e
cmp eax, 4
jl 0x45ab53
cmp byte [ebp + 0x3f], 0
jne 0x45ab53
cmp byte [ebp + 0x3d], 0
jne 0x45ab53
cmp byte [ebp + 0x67], 0
je 0x45a57f
mov dword [ebp + 0x60], 4
cmp dword [ebp + 0x10], 5
je 0x45ae54
cmp dword [ebp + 0x10], 0xf
je 0x45ae54
push 0x100000
lea ecx, [ebp - 0x1c]
mov dword [ebp + 0x54], ebx
call fcn.0043d29b
lea eax, [ebp + 0x54]
push eax
push dword [ebp - 0x1c]
push dword [ebp + 0x6c]
call fcn.0043b124
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x54]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x45a5ef
cmp edx, ecx
jge 0x45a5cc
cmp ecx, 4
jge 0x45a635
cmp byte [ebp + 0x67], 0
jne 0x45a5ef
cmp byte [ebp + 0x31], 0
jne 0x45a5ef
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3e], 0
jg 0x45a621
dec eax
jmp 0x45a628
mov dword [ebp - 0x20], ebx
jmp 0x45a436
cmp byte [ebp + 0x31], 0
mov byte [ebp + 0x3e], 1
jne 0x45a63d
cmp byte [ebp + 0x67], 0
je 0x45a642
cmp dword [ebp + 0x10], ebx
jl 0x45a635
cmp word [ebp - 0x84], bx
jle 0x45a619
mov dword [ebp - 0x84], 0x80
jmp 0x45a642
mov dword [ebp - 0x84], ebx
jmp 0x45a642
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x45a635
cmp eax, edx
jl 0x45a642
cmp ecx, 4
jle 0x45a642
lea ecx, [ebp - 0x1c]
jmp 0x45ae4f
cmp edx, 4
jle 0x45a635
cmp edx, 4
jle 0x45a652
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 8], eax
jmp 0x45a655
mov dword [ebp + 8], ebx
cmp byte [ebp + 0x3e], 0
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x28], esi
jne 0x45a675
cmp ecx, 4
jl 0x45a672
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 8], eax
jmp 0x45a675
mov dword [ebp + 8], ebx
mov dword [ebp + 4], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x45a689
cmp cl, 0xf
jne 0x45a68c
mov dword [ebp + 4], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45a67d
cmp byte [ebp + 0x3e], 0
je 0x45a6a2
cmp dword [ebp + 4], ebx
jl 0x45a635
mov eax, dword [ebp + 4]
lea eax, [eax + eax*8]
push ebx
shl eax, 4
lea esi, [eax + edi + 0x30]
push 0x200
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0048f770
push ebx
push 0x200
push dword [esi + 0x14]
mov dword [ebp - 0x1c0], eax
push dword [esi + 0x10]
mov dword [ebp - 0x1bc], edx
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
call fcn.0048f770
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x31], 0
mov dword [ebp - 0x198], edx
lea esi, [eax + edi + 0x30]
je 0x45a7d1
mov eax, dword [ebp + 0x54]
xor esi, esi
cmp eax, 8
jne 0x45a724
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1bc]
jmp 0x45a777
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 0x45a753
cmp cl, 0xf
je 0x45a753
inc esi
add eax, 0x90
cmp esi, 4
jl 0x45a737
jmp 0x45a635
push ebx
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.0048f770
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
cmp esi, ebx
jl 0x45a635
xor eax, eax
mov dword [ebp - 0x20c], ebx
lea edi, [ebp - 0x208]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [ebp - 0x90]
add eax, ecx
mov ecx, dword [ebp - 0x8c]
adc ecx, edx
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.00441fd3
add esp, 0x14
cmp byte [ebp + 0x5b], 0
mov dword [ebp - 4], ebx
jne 0x45a7c6
cmp byte [ebp + 0x5a], 0
jne 0x45a7c6
cmp byte [ebp + 0x3c], 0
je 0x45cd92
mov dword [ebp + 0x54], ebx
lea ecx, [ebp - 0x1c]
jmp 0x45c1a8
cmp dword [ebp + 0x54], 4
jg 0x45a7df
mov eax, dword [ebp + 4]
mov dword [ebp + 0x18], eax
jmp 0x45a80a
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x45a7f0
cmp cl, 0xf
jne 0x45a7f3
mov dword [ebp + 0x18], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45a7e4
cmp byte [ebp + 0x3e], 0
jne 0x45a80a
mov eax, dword [ebp + 8]
add dword [ebp + 0x18], eax
cmp dword [ebp + 0x18], ebx
jge 0x45a819
cmp byte [ebp + 0x67], 0
je 0x45a635
cmp byte [ebp + 0x3e], 0
je 0x45a824
mov dword [ebp + 0x28], ebx
jmp 0x45a84e
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x45a836
cmp edx, ebx
jne 0x45a843
cmp cl, 5
je 0x45a843
cmp cl, 0xf
je 0x45a843
mov dword [ebp + 0x28], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45a82c
cmp byte [ebp + 0x3e], 0
jne 0x45a85d
cmp dword [ebp + 0x28], ebx
jl 0x45a635
cmp byte [ebp + 0x67], 0
je 0x45aa5a
mov eax, dword [ebp + 8]
cmp eax, ebx
jg 0x45a871
mov eax, dword [ebp + 4]
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 - 0x158], ecx
call fcn.0048f770
cmp dword [ebp + 0x54], 4
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
jle 0x45a94c
cmp dword [ebp + 0x18], 0
jge 0x45a94c
cmp byte [esi + 0x20], 0
je 0x45cda7
mov eax, dword [ebp + 0x54]
cmp eax, 8
jle 0x45a8ca
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x45a8cd
mov eax, dword [ebp + 4]
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.0048f770
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x70], 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 - 0x6c], edx
call fcn.0048f770
mov ecx, dword [ebp - 0x198]
mov esi, eax
sub eax, dword [ebp - 0x150]
mov edi, edx
mov dword [ebp - 0x174], eax
mov eax, edi
sbb eax, dword [ebp - 0x14c]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x19c]
sub eax, esi
sbb ecx, edi
add eax, dword [ebp - 0x150]
adc ecx, dword [ebp - 0x14c]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], ecx
jmp 0x45a99d
cmp dword [ebp + 8], 0
jle 0x45a96f
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x14]
adc ecx, dword [ebp - 0x158]
push 0
push 0x200
push ecx
push eax
call fcn.0048f770
mov ecx, dword [ebp - 0x198]
mov esi, eax
mov eax, dword [ebp - 0x19c]
sub eax, esi
mov edi, edx
sbb ecx, edi
add eax, dword [ebp - 0x150]
adc ecx, dword [ebp - 0x14c]
and dword [ebp - 0xe0], 0
and dword [ebp - 0xdc], 0
test ecx, ecx
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0xc0], edi
jl 0x45cdac
jg 0x45a9bb
test eax, eax
jbe 0x45cdac
cmp byte [ebp - 0x39], 0
je 0x45a9c7
add dword [ebp + 0x40], esi
adc dword [ebp + 0x44], edi
mov ebx, esi
add ebx, 1
mov edx, edi
adc edx, 0
cmp dword [ebp + 0x44], edx
jg 0x45a9e3
jl 0x45a9dd
cmp dword [ebp + 0x40], ebx
ja 0x45a9e3
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], edx
sub eax, dword [ebp + 0x40]
sbb ecx, dword [ebp + 0x44]
add eax, esi
adc ecx, edi
cmp dword [ebp + 0x38], ecx
jl 0x45a9ff
jg 0x45a9f9
cmp dword [ebp + 0x34], eax
jbe 0x45a9ff
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ecx
xor ebx, ebx
cmp dword [ebp + 0x38], ebx
jl 0x45a635
jg 0x45aa15
cmp dword [ebp + 0x34], ebx
jb 0x45a635
cmp dword [ebp + 8], ebx
mov eax, dword [ebp + 0x54]
jle 0x45aa33
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x45aa29
inc eax
jmp 0x45aa3b
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x45aa3b
and eax, 0xfffffffc
cmp eax, 3
jg 0x45aa3e
inc eax
jmp 0x45aa46
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov dword [ebp - 0x128], esi
mov dword [ebp - 0x124], edi
jmp 0x45ab44
mov eax, dword [ebp + 0x18]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, eax
mov dword [ebp - 0x1c8], eax
mov eax, 0x200
push ebx
add edx, eax
mov dword [ebp - 0x1c4], ecx
push eax
adc ecx, ebx
push ecx
push edx
call fcn.0048f770
mov ecx, dword [esi + 0x10]
mov edi, eax
mov eax, 0x200
mov dword [ebp - 0x1b0], edx
mov dword [ebp - 0xc0], edx
mov edx, dword [esi + 0x14]
push ebx
sub ecx, eax
push eax
sbb edx, ebx
push edx
push ecx
mov dword [ebp - 0xc4], edi
call fcn.0048f770
cmp byte [ebp - 0x39], 0
je 0x45aacb
add dword [ebp + 0x40], edi
mov ecx, dword [ebp - 0x1b0]
adc dword [ebp + 0x44], ecx
cmp dword [ebp + 0x44], ebx
jl 0x45aaef
jg 0x45aad7
cmp dword [ebp + 0x40], ebx
jbe 0x45aaef
mov ecx, dword [ebp - 0x1b0]
cmp dword [ebp + 0x44], ecx
jg 0x45aaef
jl 0x45aae9
cmp dword [ebp + 0x40], edi
ja 0x45aaef
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], ecx
cmp dword [ebp + 0x38], ebx
jl 0x45ab21
jg 0x45aafb
cmp dword [ebp + 0x34], ebx
jbe 0x45ab21
cmp dword [ebp + 0x38], edx
jl 0x45ab0d
jg 0x45ab07
cmp dword [ebp + 0x34], eax
jbe 0x45ab0d
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
cmp dword [ebp + 0x38], ebx
jl 0x45a635
jg 0x45ab21
cmp dword [ebp + 0x34], ebx
jb 0x45a635
push ebx
push 0x200
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
call fcn.0048f770
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
lea ecx, [ebp - 0x1c]
call fcn.00437884
xor ebx, ebx
mov edi, 0x200
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
setge byte [ebp - 0x3c]
add eax, dword [ebp - 0x128]
push ebx
adc ecx, dword [ebp - 0x124]
push edi
push ecx
push eax
call fcn.0048f820
cmp dword [ebp - 0x20], ebx
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
je 0x45abc0
cmp byte [ebp + 0x67], 0
je 0x45abc0
mov eax, dword [ebp - 0x90]
add eax, dword [ebp + 0x40]
mov ecx, dword [ebp - 0x8c]
adc ecx, dword [ebp + 0x44]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.004331ed
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
mov dword [ebp - 0xa4], ebx
mov esi, dword [ebp + 0x20]
push edi
push ebx
add esi, 0x200
push esi
call fcn.0048f710
push ebx
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x1c
cmp eax, dword [ebp - 0xe8]
jne 0x45cdb1
cmp edx, dword [ebp - 0xe4]
jne 0x45cdb1
push ebx
lea eax, [ebp - 0x24]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
push esi
push dword [ebp + 0x20]
mov dword [ebp + 0x54], eax
call fcn.0041255f
add esp, 0xc
cmp dword [ebp + 0x54], ebx
je 0x45cdb1
cmp byte [ebp + 0x3d], 0
je 0x45acc0
cmp byte [ebp + 0x3f], 0
jne 0x45acc0
push esi
call fcn.0043b2b5
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.0048f710
push edi
push esi
push dword [ebp + 0x20]
mov word [esi + 0x1fe], 0xaa55
call fcn.00437938
add esp, 0x1c
test eax, eax
je 0x45aca0
push ebx
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
push ebx
lea eax, [ebp - 0x24]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x24], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
mov al, byte [ebp + 0x5b]
or al, byte [ebp + 0x5a]
or al, byte [ebp + 0x3c]
je 0x45cdbe
cmp dword [ebp - 8], ebx
jl 0x45cdbe
mov dword [ebp + 0x54], ebx
jmp 0x45c1ad
cmp byte [ebp + 0x30], 0
jne 0x45acd6
cmp byte [ebp - 0x11], 0
je 0x45ace5
cmp dword [ebp + 0x60], 1
jle 0x45ae54
cmp byte [ebp - 0x11], 0
je 0x45ace5
cmp dword [ebp + 0x60], ebx
jl 0x45ae54
push dword [ebp + 0x6c]
call fcn.0043ad55
lea ecx, [ebp + 0xc]
mov dword [ebp + 4], eax
mov dword [esp], 0x100000
call fcn.0043d29b
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], ebx
jl 0x45ad32
push dword [ebp + 0x6c]
mov esi, dword [ebp + 0xc]
call fcn.0043aed0
pop ecx
push ebx
push dword [ebp + 4]
push edx
push eax
call fcn.0048f770
mov esi, dword [ebp - 0xd4]
jmp 0x45ad9c
mov esi, dword [ebp - 0xd4]
cmp esi, ebx
jl 0x45ad58
jg 0x45ad46
cmp dword [ebp - 0xd8], ebx
jb 0x45ad58
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], esi
lea eax, [ebp - 0x230]
push eax
push ebx
push dword [ebp - 0xb0]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x45ade2
test byte [ebp - 0x230], 0x10
jne 0x45ade2
mov eax, dword [ebp - 0x214]
mov ecx, dword [ebp - 0x210]
and eax, 0xfffffe00
xor edx, edx
shld edx, eax, 0x17
shl eax, 0x17
shr ecx, 9
xor edi, edi
or eax, ecx
or edx, edi
sub eax, dword [ebp - 0x90]
sbb edx, dword [ebp - 0x8c]
cmp esi, ebx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], edx
jl 0x45ade2
jg 0x45adc2
cmp dword [ebp - 0xd8], ebx
jbe 0x45ade2
cmp edx, esi
ja 0x45ade2
jb 0x45add0
cmp eax, dword [ebp - 0xd8]
jae 0x45ade2
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], esi
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 0xc]
push dword [ebp + 0x6c]
call fcn.0043b124
mov ecx, dword [ebp - 0xa0]
mov cx, word [ecx]
add esp, 0xc
cmp cx, bx
mov dword [ebp - 0xbc], eax
jne 0x45ae0f
cmp eax, ebx
je 0x45ae4c
cmp eax, ebx
je 0x45ae17
mov eax, dword [eax]
jmp 0x45ae19
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x4a]
cmp byte [ebp + 0x4a], 0
je 0x45ae30
cmp byte [ebp - 0x5d], 0
mov byte [ebp + 0x33], 1
je 0x45ae34
mov byte [ebp + 0x33], 0
cmp byte [ebp - 0x5e], 0
jne 0x45ae67
cmp byte [ebp + 0x3d], 0
jne 0x45ae67
cmp byte [ebp + 0x33], 0
je 0x45ae61
cmp byte [ebp + 0x3f], 0
jne 0x45ae67
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
jmp 0x45c33b
cmp byte [ebp + 0x3f], 0
jne 0x45ae4c
cmp cx, bx
mov eax, dword [ebp - 0x104]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp + 0x54], eax
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x10], eax
jne 0x45af34
xor eax, eax
mov dword [ebp - 0x1ec], ebx
lea edi, [ebp - 0x1e8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
lea eax, [ebp - 0x24]
push eax
push 0x18
lea eax, [ebp - 0x1ec]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0x100], ebx
jg 0x45aee4
jl 0x45aece
cmp dword [ebp - 0x104], ebx
ja 0x45aee4
mov eax, dword [ebp - 0x1e0]
mov dword [ebp + 8], eax
cdq
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], edx
cmp dword [ebp - 0xf8], ebx
jg 0x45af0c
jl 0x45aef6
cmp dword [ebp - 0xfc], ebx
ja 0x45af0c
mov eax, dword [ebp - 0x1dc]
mov dword [ebp + 0x54], eax
cdq
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], edx
cmp dword [ebp - 0x108], ebx
jg 0x45af34
jl 0x45af1e
cmp dword [ebp - 0x10c], ebx
ja 0x45af34
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x10], eax
cdq
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x100], ebx
jg 0x45af5a
jl 0x45af46
cmp dword [ebp - 0x104], ebx
ja 0x45af5a
mov eax, 0xff
mov dword [ebp + 8], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], ebx
cmp dword [ebp - 0xf8], ebx
jg 0x45af7e
jl 0x45af6c
cmp dword [ebp - 0xfc], ebx
ja 0x45af7e
push 0x3f
pop eax
mov dword [ebp + 0x54], eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], ebx
cmp dword [ebp - 0x108], ebx
jg 0x45afa4
jl 0x45af90
cmp dword [ebp - 0x10c], ebx
ja 0x45afa4
mov eax, 0x200
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], ebx
mov edi, dword [ebp - 0x10]
mov eax, edi
cdq
mov ecx, 0x200
idiv ecx
cmp byte [ebp + 0x33], 0
mov esi, dword [ebp + 4]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0xc]
lea ebx, [eax + esi]
lea eax, [ebx + esi + 0x10000]
mov dword [ebp - 0x20], eax
jne 0x45b8c4
cmp byte [ebp + 0x3f], 0
jne 0x45b8c4
cmp byte [ebp + 0x27], 0
mov byte [ebp + 0x4a], 0
jne 0x45b455
mov esi, dword [ebp + 0x44]
xor eax, eax
cmp esi, eax
jg 0x45b00d
jl 0x45aff9
cmp dword [ebp + 0x40], eax
jae 0x45b00d
cmp dword [ebp + 0x38], eax
jl 0x45b455
jg 0x45b00d
cmp dword [ebp + 0x34], eax
jb 0x45b455
cmp dword [ebp + 0x60], eax
jl 0x45b455
push 0x100000
lea ecx, [ebp - 0x34]
call fcn.0043d29b
mov eax, edi
imul eax, dword [ebp + 0x54]
cdq
mov ecx, 0x200
idiv ecx
mov ebx, eax
imul eax, dword [ebp + 8]
test edi, edi
cdq
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
jle 0x45ce0e
mov eax, dword [ebp - 0xa0]
cmp word [eax], 0
jne 0x45b08e
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x34]
push dword [ebp + 0x6c]
call fcn.0043b124
add esp, 0xc
test eax, eax
je 0x45cdf1
cmp dword [ebp + 0x60], 4
jl 0x45b08e
cmp byte [ebp + 0x67], 0
jne 0x45b08e
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp - 0x20]
jge 0x45ce0e
xor eax, eax
xor edx, edx
test esi, esi
jl 0x45b12d
jg 0x45b0a5
cmp dword [ebp + 0x40], edx
jbe 0x45b12d
mov ecx, dword [ebp - 0x78]
and ecx, dword [ebp - 0x74]
cmp ecx, 0xffffffff
jne 0x45b0de
cmp esi, dword [ebp - 0x138]
jl 0x45b0d9
jg 0x45b0c5
mov eax, dword [ebp + 0x40]
cmp eax, dword [ebp - 0x13c]
jb 0x45b0d9
cmp byte [ebp - 0x3c], 0
jne 0x45b0d9
push dword [ebp - 0x138]
push dword [ebp - 0x13c]
jmp 0x45b119
mov eax, ebx
cdq
jmp 0x45b117
cmp byte [ebp - 0x25], 0
jne 0x45b12d
mov eax, edi
cdq
mov ecx, eax
add ecx, dword [ebp - 0x78]
mov edi, edx
adc edi, dword [ebp - 0x74]
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.0048f770
mov ecx, eax
mov eax, dword [ebp + 0x18]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.0048f820
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
push edx
push eax
push esi
push dword [ebp + 0x40]
call fcn.0043b1f9
add esp, 0x10
add dword [ebp + 0x40], eax
adc esi, edx
mov dword [ebp + 0x44], esi
xor ecx, ecx
cmp dword [ebp + 0x38], ecx
jl 0x45b159
jg 0x45b13b
cmp dword [ebp + 0x34], ecx
jbe 0x45b159
cmp byte [ebp - 0x7a], 0
jne 0x45b159
sub dword [ebp + 0x34], eax
sbb dword [ebp + 0x38], edx
cmp dword [ebp + 0x38], ecx
jg 0x45b159
jl 0x45b153
cmp dword [ebp + 0x34], ecx
jae 0x45b159
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], ecx
cmp esi, ecx
jl 0x45b16b
jg 0x45b164
cmp dword [ebp + 0x40], ecx
jbe 0x45b16b
mov edi, dword [ebp + 0x40]
mov ebx, esi
jmp 0x45b16f
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x38], ecx
jl 0x45b20c
jg 0x45b183
cmp dword [ebp + 0x34], ecx
jbe 0x45b20c
mov eax, dword [ebp - 0x54]
and eax, dword [ebp - 0x50]
cmp eax, 0xffffffff
jne 0x45b1a9
push dword [ebp - 0x138]
add edi, dword [ebp + 0x34]
push dword [ebp - 0x13c]
adc ebx, dword [ebp + 0x38]
push ebx
push edi
call fcn.00491da0
jmp 0x45b206
cmp byte [ebp - 0x25], 0
jne 0x45b20c
mov eax, dword [ebp - 0x10]
cdq
mov esi, eax
add eax, dword [ebp - 0x54]
mov ecx, edx
adc ecx, dword [ebp - 0x50]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x110], edx
call fcn.0048f770
push dword [ebp - 0x110]
push esi
push edx
push eax
call fcn.0048f820
push 0
push 0x200
push edx
push eax
call fcn.0048f770
add edi, dword [ebp + 0x34]
push edx
adc ebx, dword [ebp + 0x38]
push eax
push ebx
push edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
call fcn.00491da0
mov esi, dword [ebp + 0x44]
sub dword [ebp + 0x34], eax
sbb dword [ebp + 0x38], edx
cmp dword [ebp - 0xdc], 0
mov byte [ebp + 0x4a], 0
mov byte [ebp + 0x3e], 0
mov byte [ebp + 0x33], 0
jl 0x45b33c
jg 0x45b234
cmp dword [ebp - 0xe0], 0
jbe 0x45b33c
mov ecx, dword [ebp + 0x34]
sub ecx, dword [ebp - 0xc4]
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0x38]
sbb edi, dword [ebp - 0xc0]
add ecx, dword [ebp + 0x40]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.0048f770
and dword [ebp - 0x194], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 8]
lea edi, [ebp - 0x190]
push dword [ebp + 0x54]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x174]
lea eax, [ebp + 0x33]
push eax
lea eax, [ebp + 0x3e]
push eax
lea eax, [ebp + 0x4a]
push eax
push dword [ebp - 0x170]
mov dword [ebp - 0xe0], ebx
push edi
mov dword [ebp - 0xdc], edx
call fcn.0043b223
mov al, byte [ebp + 0x3e]
add esp, 0x20
push 1
push dword [ebp + 8]
mov byte [ebp - 0x193], al
mov al, byte [ebp + 0x33]
push dword [ebp + 0x54]
mov byte [ebp - 0x192], al
mov al, byte [ebp + 0x4a]
mov byte [ebp - 0x191], al
lea eax, [ebp + 0x33]
push eax
lea eax, [ebp + 0x3e]
push eax
lea eax, [ebp + 0x4a]
push eax
push 0
push 2
push dword [ebp - 0x170]
mov byte [ebp - 0x194], 0
push edi
call fcn.0048f820
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0043b223
mov al, byte [ebp + 0x3e]
mov byte [ebp - 0x18f], al
mov al, byte [ebp + 0x33]
mov byte [ebp - 0x18e], al
mov al, byte [ebp + 0x4a]
push 1
mov byte [ebp - 0x18d], al
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x6c]
mov byte [ebp - 0x190], 5
push dword [ebp - 0x70]
mov dword [ebp - 0x18c], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x188], ebx
call fcn.00441fd3
add esp, 0x34
mov eax, dword [ebp + 0x18]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
call fcn.0048f770
test esi, esi
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], edx
jl 0x45b38b
jg 0x45b370
xor eax, eax
cmp dword [ebp + 0x40], eax
jb 0x45b38d
push ebx
push edi
push esi
push dword [ebp + 0x40]
call fcn.0048f770
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], edx
xor eax, eax
jmp 0x45b399
xor eax, eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
cmp dword [ebp + 0x38], eax
jl 0x45b3ba
jg 0x45b3a5
cmp dword [ebp + 0x34], eax
jb 0x45b3ba
push ebx
push edi
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.0048f770
mov dword [ebp - 0xcc], edx
jmp 0x45b3c0
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xac]
setge al
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x7b]
push dword [ebp + 0x54]
push eax
lea eax, [ebp - 0x79]
push eax
lea eax, [ebp + 0x2c]
push eax
push ebx
push edi
call fcn.0043b223
add esp, 0x20
test esi, esi
jl 0x45b41c
jg 0x45b404
cmp dword [ebp + 0x40], 0
jbe 0x45b41c
sub edi, dword [ebp - 0x1d0]
sbb ebx, dword [ebp - 0x1cc]
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xa8], ebx
mov al, byte [ebp - 0x3c]
mov byte [ebp + 0x4a], al
movsx eax, al
push eax
push dword [ebp + 8]
lea eax, [ebp + 0x1f]
push dword [ebp + 0x54]
push eax
lea eax, [ebp - 0x3a]
push eax
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0xd0]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.0043b223
add esp, 0x20
lea ecx, [ebp - 0x34]
call fcn.00437884
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp + 0x28]
lea esi, [eax + 0x200]
push 0x200
push esi
shl edi, 4
push eax
mov dword [ebp - 4], esi
lea ebx, [edi + esi]
call fcn.0041255f
add esp, 0xc
cmp dword [ebp - 0xdc], 0
jl 0x45b4bc
jg 0x45b48d
cmp dword [ebp - 0xe0], 0
jb 0x45b4bc
cmp dword [ebp + 0x28], 0
jle 0x45b4a5
push edi
push 0
add esi, 0x1be
push esi
call fcn.0048f710
add esp, 0xc
push 0x30
pop eax
sub eax, edi
push eax
lea eax, [ebx + 0x1ce]
push 0
push eax
call fcn.0048f710
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [ebx + 0x1c2]
jne 0x45b4de
cmp byte [ebp + 0x30], 2
jge 0x45b4de
cmp al, 5
je 0x45ce16
cmp al, 0xf
je 0x45ce16
cmp byte [ebp + 0x67], 0
mov esi, dword [ebx + 0x1c6]
mov edi, dword [ebx + 0x1ca]
jne 0x45b554
test al, al
je 0x45b554
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
je 0x45b556
cmp byte [ebp + 0x30], 2
jge 0x45b556
cmp byte [ebp - 0x3c], cl
jne 0x45b556
cmp dword [ebp + 0x44], ecx
jl 0x45b52c
jg 0x45b512
cmp dword [ebp + 0x40], ecx
jb 0x45b52c
xor eax, eax
cmp dword [ebp - 0xac], esi
jne 0x45ce16
cmp dword [ebp - 0xa8], eax
jne 0x45ce16
cmp dword [ebp + 0x38], ecx
jl 0x45b556
jg 0x45b538
cmp dword [ebp + 0x34], ecx
jb 0x45b556
xor eax, eax
cmp dword [ebp - 0xd0], edi
jne 0x45b54a
cmp dword [ebp - 0xcc], eax
je 0x45b556
cmp edi, ecx
jne 0x45ce16
jmp 0x45b556
xor ecx, ecx
cmp byte [ebp + 0x27], 0
je 0x45b578
xor edi, edi
xor esi, esi
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp + 0x10]
cmp eax, ecx
jl 0x45b585
mov byte [ebx + 0x1c2], al
mov eax, dword [ebp - 0x84]
cmp ax, cx
jl 0x45b596
mov byte [ebx + 0x1be], al
cmp dword [ebp + 0x44], ecx
jg 0x45b5c2
jl 0x45b5a2
cmp dword [ebp + 0x40], ecx
jae 0x45b5c2
cmp dword [ebp + 0x38], ecx
jl 0x45b63b
jg 0x45b5b6
cmp dword [ebp + 0x34], ecx
jb 0x45b63b
mov eax, dword [ebp - 0xd0]
lea eax, [esi + eax - 1]
jmp 0x45b5d8
cmp dword [ebp + 0x38], ecx
jg 0x45b5fc
jl 0x45b5ce
cmp dword [ebp + 0x34], ecx
jae 0x45b5fc
mov eax, dword [ebp - 0xac]
lea eax, [edi + eax - 1]
movsx ecx, byte [ebp + 0x4a]
push ecx
push dword [ebp + 8]
lea ecx, [ebp + 0x1f]
push dword [ebp + 0x54]
push ecx
lea ecx, [ebp - 0x3a]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
push 0
push eax
call fcn.0043b223
add esp, 0x20
xor ecx, ecx
cmp dword [ebp + 0x44], ecx
jl 0x45b62f
jg 0x45b608
cmp dword [ebp + 0x40], ecx
jb 0x45b62f
mov al, byte [ebp - 0x79]
mov byte [ebx + 0x1bf], al
mov al, byte [ebp - 0x7b]
mov byte [ebx + 0x1c0], al
mov al, byte [ebp + 0x2c]
mov byte [ebx + 0x1c1], al
mov eax, dword [ebp - 0xac]
mov dword [ebx + 0x1c6], eax
cmp dword [ebp + 0x38], ecx
jg 0x45b647
jl 0x45b63b
cmp dword [ebp + 0x34], ecx
jae 0x45b647
cmp dword [ebp + 0x44], ecx
jl 0x45b662
jg 0x45b647
cmp dword [ebp + 0x40], ecx
jb 0x45b662
mov al, byte [ebp - 0x3a]
mov byte [ebx + 0x1c3], al
mov al, byte [ebp + 0x1f]
mov byte [ebx + 0x1c4], al
mov al, byte [ebp - 0x5c]
mov byte [ebx + 0x1c5], al
cmp dword [ebp + 0x38], ecx
jl 0x45b67a
jg 0x45b66e
cmp dword [ebp + 0x34], ecx
jb 0x45b67a
mov eax, dword [ebp - 0xd0]
mov dword [ebx + 0x1ca], eax
cmp dword [ebp + 0x10], ecx
jge 0x45b6a0
cmp word [ebp - 0x84], cx
jge 0x45b6a0
cmp dword [ebp + 0x44], ecx
jg 0x45b6a0
jl 0x45b694
cmp dword [ebp + 0x40], ecx
jae 0x45b6a0
cmp dword [ebp + 0x38], ecx
jl 0x45b6b3
jg 0x45b6a0
cmp dword [ebp + 0x34], ecx
jb 0x45b6b3
mov eax, dword [ebp - 4]
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
jmp 0x45b6b6
mov eax, dword [ebp - 4]
cmp word [ebp - 0x84], cx
jge 0x45b6ea
cmp dword [ebp + 0x10], ecx
jge 0x45b6ea
cmp dword [ebp + 0x44], ecx
jg 0x45b6ea
jl 0x45b6d0
cmp dword [ebp + 0x40], ecx
jae 0x45b6ea
cmp dword [ebp + 0x38], ecx
jg 0x45b6ea
jl 0x45b6dc
cmp dword [ebp + 0x34], ecx
jae 0x45b6ea
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
xor esi, esi
push esi
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
cmp eax, dword [ebp - 0xe8]
jne 0x45ce58
cmp edx, dword [ebp - 0xe4]
jne 0x45ce58
mov eax, dword [ebp - 0x128]
or eax, dword [ebp - 0x124]
mov dword [ebp + 0x54], 1
jne 0x45b73a
push dword [ebp - 4]
call fcn.0043b2b5
pop ecx
mov edi, 0x200
push edi
push dword [ebp - 4]
push dword [ebp + 0x20]
call fcn.0043d677
add esp, 0xc
test eax, eax
jne 0x45b770
push esi
lea eax, [ebp - 0x24]
push eax
push edi
push dword [ebp - 4]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x54], eax
call fcn.0043b29d
pop ecx
cmp dword [ebp + 0x44], esi
jl 0x45b865
jg 0x45b784
cmp dword [ebp + 0x40], edi
jb 0x45b865
cmp dword [ebp + 0x38], 0
jl 0x45b865
jg 0x45b799
cmp dword [ebp + 0x34], edi
jbe 0x45b865
cmp byte [ebp - 0x7d], 0
je 0x45b865
mov esi, 0x200
push esi
push 0
push dword [ebp - 4]
call fcn.0048f710
add esp, 0xc
push 0
push esi
push dword [ebp + 0x44]
push dword [ebp + 0x40]
call fcn.0048f820
mov edi, eax
mov ebx, edx
mov dword [ebp - 0x1a4], edi
add edi, dword [ebp - 0x68]
mov dword [ebp - 0x1a0], ebx
adc ebx, dword [ebp - 0x64]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
cmp eax, dword [ebp - 0x1a4]
jne 0x45b861
cmp edx, dword [ebp - 0x1a0]
jne 0x45b861
push 0
lea eax, [ebp - 0x24]
push eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov dword [ebp + 0x54], eax
je 0x45b861
cmp dword [ebp - 0x24], esi
jne 0x45b861
push esi
push dword [ebp - 4]
push dword [ebp + 0x20]
call fcn.0043d677
add esp, 0xc
test eax, eax
jne 0x45b865
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
cmp eax, dword [ebp - 0x1a4]
jne 0x45b861
cmp edx, dword [ebp - 0x1a0]
jne 0x45b861
push 0
lea eax, [ebp - 0x24]
push eax
push esi
push dword [ebp - 4]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x54], eax
jmp 0x45b865
and dword [ebp + 0x54], 0
xor eax, eax
cmp dword [ebp + 0x54], eax
sete al
cmp byte [ebp + 0x5a], 0
mov esi, eax
mov dword [ebp - 4], esi
jne 0x45c1a1
cmp byte [ebp + 0x5b], 0
jne 0x45c1a1
cmp byte [ebp + 0x3c], 0
jne 0x45c1a1
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
test eax, eax
jmp 0x45c319
cmp byte [ebp + 0x27], 0
je 0x45b8ce
mov byte [ebp - 0x13], 0
cmp byte [ebp + 0x4a], 0
je 0x45b8e8
cmp byte [ebp + 0x3d], 0
jne 0x45b8e8
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x18], eax
jmp 0x45b8ef
mov dword [ebp + 0x18], 0x80
cmp byte [ebp - 0x7c], 0
mov eax, dword [ebp + 0x34]
mov edi, dword [ebp + 0x38]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edi
je 0x45b917
add eax, dword [ebp + 0x40]
push 0
adc edi, dword [ebp + 0x44]
sub eax, 1
pop edx
sbb edi, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edi
jmp 0x45b919
xor edx, edx
cmp byte [ebp + 0x3d], 0
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], edx
je 0x45b9b2
test byte [ebp - 0x2d], 0x10
je 0x45b958
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0xf4], eax
sub eax, 1
mov dword [ebp - 0xf0], edi
sbb edi, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edi
cmp dword [ebp + 0x44], edx
jg 0x45b96f
jl 0x45b965
cmp dword [ebp + 0x40], 1
jae 0x45b96f
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x44], edx
sub eax, 1
mov ecx, edi
sbb ecx, edx
cmp ecx, edx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], ecx
jg 0x45b9aa
jl 0x45b98d
cmp eax, 1
jae 0x45b9aa
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
sub eax, 2
sbb ecx, edx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp + 0x40]
mov edx, dword [ebp + 0x44]
jmp 0x45b9b4
xor eax, eax
push dword [ebp - 0x64]
lea ecx, [ebp - 0xb8]
push dword [ebp - 0x68]
push ecx
push edx
push eax
push esi
push dword [ebp + 0x18]
lea eax, [ebp + 0x6c]
push dword [ebp + 0xc]
push eax
call fcn.0044193c
add esp, 0x24
cmp byte [ebp + 0x4a], 0
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
jne 0x45b9fd
or eax, edx
jne 0x45b9fd
and dword [ebp - 0x11c], 0
mov dword [ebp - 0x120], 1
mov eax, dword [ebp + 0x18]
cmp dword [ebp + 0x60], eax
mov dword [ebp - 0x10], 1
jae 0x45ba30
cmp dword [ebp + 0x14], eax
jge 0x45ba30
mov ecx, dword [ebp + 0x60]
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x4a9d48
push ecx
call fcn.00437938
add esp, 0xc
test eax, eax
jne 0x45ba34
and dword [ebp - 0x10], 0
cmp dword [ebp - 0xb4], 0
jl 0x45ce16
jg 0x45ba50
cmp dword [ebp - 0xb8], 0x20
jb 0x45ce16
cmp byte [ebp + 0x3d], 0
je 0x45bc09
mov ecx, dword [ebp + 0x18]
cmp dword [ebp + 0x60], ecx
jae 0x45ce16
lea eax, [ebx + esi]
mov dword [ebp - 0x10], eax
mov eax, ecx
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x45baa8
mov dword [ebp + 0x2c], eax
push 0x1b3
push 0
push dword [ebp - 0x10]
call fcn.0048f710
mov eax, dword [ebp - 0x10]
push 0x4a
add eax, 0x1b4
push 0
push eax
call fcn.0048f710
add dword [ebp - 0x10], esi
add esp, 0x18
dec dword [ebp + 0x2c]
jne 0x45ba7c
push 0x5c
push 0
push ebx
call fcn.0048f710
push 8
push str.EFI_PART
push ebx
call fcn.0041255f
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp - 0xb4]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x24], edx
mov edx, dword [ebp + 0x44]
adc edx, 0
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [ebx + 0x20], eax
add eax, 0xffffffe0
adc ecx, 0xffffffff
mov dword [ebx + 0x30], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x34], 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 0x45bb29
push 0x10
push 0x4acf84
push eax
call fcn.0041255f
add esp, 0xc
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x44]
add eax, 1
push 0x5c
mov dword [ebx + 0x48], eax
mov eax, 0x80
push ebx
push dword [ebp - 0x20]
adc ecx, 0
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.0041255f
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp + 0xc]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0048f710
add esp, 0x18
test edi, edi
jg 0x45bb95
jl 0x45bb8d
cmp dword [ebp - 0x48], 1
jae 0x45bb95
or dword [ebp - 0x48], 0xffffffff
or dword [ebp - 0x44], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0xc]
push 1
push dword [ebp + 8]
shl eax, 4
push dword [ebp + 0x54]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x44]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x40]
call fcn.0043b223
push 1
push dword [ebp + 8]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x54]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x48]
call fcn.0043b223
mov eax, dword [ebp + 0x40]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0x48]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x45bf2d
cmp byte [ebp - 0x3b], 0
je 0x45bc19
cmp dword [ebp + 0x60], 0
jl 0x45bf2d
cmp byte [ebp + 0x67], 0
je 0x45bc74
or dword [ebp + 0x60], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x18], edi
mov byte [ebp - 0x13], 0
jbe 0x45bc74
lea eax, [ebx + esi]
mov dword [ebp - 0x5c], eax
push 0x10
push 0x4a9d48
push dword [ebp - 0x5c]
call fcn.00437938
add esp, 0xc
test eax, eax
je 0x45bc59
add dword [ebp - 0x5c], 0x80
inc edi
cmp edi, dword [ebp + 0x18]
jb 0x45bc34
jmp 0x45bc74
mov dword [ebp + 0x60], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.0048f710
add esp, 0xc
mov eax, dword [ebp + 0x18]
dec dword [ebp + 0x14]
cmp dword [ebp + 0x60], eax
jae 0x45ce16
cmp dword [ebp + 0x14], eax
jge 0x45ce16
cmp byte [ebp - 0x13], 0
je 0x45bd9e
xor ecx, ecx
cmp byte [ebp + 0x4a], cl
je 0x45bcec
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x18]
jae 0x45bcec
mov edx, dword [eax]
cmp edx, dword [ebp + 0x40]
jne 0x45bcb5
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x44]
je 0x45bcbd
inc ecx
add eax, 0x80
jmp 0x45bca1
mov eax, dword [ebp + 4]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4a9d48
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 0x45bce9
push 0x80
push 0
push eax
call fcn.0048f710
add esp, 0xc
mov esi, dword [ebp + 4]
mov eax, dword [ebp + 0x60]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x4a9d48
push eax
mov dword [ebp - 0xbc], eax
call fcn.00437938
add esp, 0xc
test eax, eax
je 0x45bd85
mov esi, dword [ebp + 0x60]
inc esi
cmp esi, dword [ebp + 0x18]
mov dword [ebp + 0x20], esi
jae 0x45ce16
shl esi, 7
add esi, edi
push 0x10
push 0x4a9d48
push esi
call fcn.00437938
add esp, 0xc
test eax, eax
je 0x45bd4d
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
add esi, 0x80
cmp eax, dword [ebp + 0x18]
jb 0x45bd26
jmp 0x45bd76
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp + 0x60]
jle 0x45bd76
mov edi, eax
mov eax, dword [ebp + 4]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x20]
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 0x45bd67
mov eax, dword [ebp + 0x18]
cmp dword [ebp + 0x20], eax
jae 0x45ce16
mov esi, dword [ebp + 4]
push 0x80
push 0
push dword [ebp - 0xbc]
call fcn.0048f710
add esp, 0xc
and dword [ebp - 0x10], 0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
cmp eax, ecx
jge 0x45bebe
cmp dword [ebp - 0x10], ecx
jne 0x45bdd7
xor eax, eax
inc eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x140], ecx
jle 0x45bdfb
mov edi, dword [ebp + 0x60]
mov eax, dword [ebp + 4]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x184]
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 + 4]
xor ecx, ecx
cmp dword [ebp - 0x148], ecx
jle 0x45be21
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 4]
shl ecx, 7
add eax, ebx
lea edi, [ecx + eax + 0x10]
lea esi, [ebp - 0x1fc]
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 + 4]
xor ecx, ecx
cmp dword [ebp - 0x164], ecx
jle 0x45be40
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x40]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x20], edi
mov edi, dword [ebp + 0x44]
mov dword [edx + eax + 0x24], edi
cmp dword [ebp - 0x16c], ecx
jle 0x45be5f
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp - 0x48]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0x44]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0x168], ecx
jle 0x45be83
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x134]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0x130]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0x144], ecx
jle 0x45bf07
mov eax, dword [ebp - 0x40]
cmp word [eax], 0
je 0x45bf07
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 4]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.0048f710
add esp, 0xc
push 0x24
push dword [ebp - 0x40]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x45bf07
cmp eax, dword [ebp + 0x60]
je 0x45bf07
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 4]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x314]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x14]
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 + 0x14]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x314]
rep movsd dword es:[edi], dword [esi]
jge 0x45bf07
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0x27], 0
je 0x45bf2a
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 4]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.0048f710
add esp, 0xc
mov esi, dword [ebp + 4]
xor eax, eax
cmp byte [ebp - 0x3b], al
mov dword [ebp - 0x10], eax
je 0x45c028
cmp byte [ebp + 0x3d], al
jne 0x45c028
cmp dword [ebp + 0x18], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x54], eax
jle 0x45c028
lea eax, [ebx + esi]
mov dword [ebp + 0x20], eax
mov dword [ebp + 8], eax
mov edi, 0x80
push 0x10
push 0x4a9d48
push dword [ebp + 0x20]
call fcn.00437938
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x45bf89
mov ecx, dword [ebp + 0x54]
cmp ecx, dword [ebp + 0x28]
jne 0x45bf89
and dword [ebp + 0x2c], 0
jmp 0x45bf90
mov dword [ebp + 0x2c], 1
and dword [ebp - 0x5c], 0
test al, al
jne 0x45bfd4
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x28]
je 0x45bfce
mov esi, dword [ebp + 0x20]
push 0x10
push esi
push esi
call fcn.0043d677
mov edi, dword [ebp + 8]
add esp, 0xc
inc dword [ebp + 0x28]
add dword [ebp + 8], 0x80
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 4]
mov dword [ebp - 0x5c], eax
mov edi, 0x80
jmp 0x45bfd4
inc dword [ebp + 0x28]
add dword [ebp + 8], edi
cmp dword [ebp + 0x2c], 0
je 0x45c009
mov eax, dword [ebp + 0x20]
lea ecx, [eax + 0x80]
jmp 0x45bfee
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x45bff4
cmp eax, ecx
jb 0x45bfe5
jmp 0x45bffb
mov dword [ebp - 0x5c], 1
push edi
push 0
push dword [ebp + 0x20]
call fcn.0048f710
add esp, 0xc
cmp dword [ebp - 0x5c], 0
je 0x45c016
mov eax, dword [ebp + 0x54]
inc eax
mov dword [ebp - 0x10], eax
inc dword [ebp + 0x54]
mov eax, dword [ebp + 0x54]
add dword [ebp + 0x20], edi
cmp eax, dword [ebp + 0x18]
jl 0x45bf61
push dword [ebp + 0xc]
call fcn.0043b2b5
lea eax, [ebx - 0x174]
push eax
call fcn.0043b2b5
mov eax, dword [ebp + 0x60]
cmp dword [ebp - 0x10], eax
pop ecx
pop ecx
jg 0x45c04a
inc eax
mov dword [ebp - 0x10], eax
cmp byte [ebp + 0x3d], 0
mov eax, dword [ebp + 0x18]
je 0x45c056
mov dword [ebp - 0x10], eax
xor edi, edi
push edi
shl eax, 7
push edi
push eax
lea eax, [ebx + esi]
push eax
call fcn.0048303e
mov ecx, dword [ebp - 0x20]
mov dword [ebx + 0x58], eax
mov dword [ecx + 0x58], eax
mov eax, dword [ebx + 0xc]
add esp, 0x10
cmp eax, 0x20000
mov dword [ebx + 0x10], edi
mov dword [ebp + 0x2c], eax
ja 0x45ce93
xor eax, eax
push eax
push eax
push dword [ebp + 0x2c]
push ebx
call fcn.0048303e
mov edi, dword [ebp - 0x20]
mov dword [ebx + 0x10], eax
and dword [edi + 0x10], 0
push 0
xor eax, eax
push eax
push dword [ebp + 0x2c]
push edi
call fcn.0048303e
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x10]
shl eax, 7
xor edx, edx
lea eax, [eax + esi - 1]
div esi
add esp, 0x20
mov edi, eax
imul edi, esi
cmp byte [ebp + 0x3d], 0
je 0x45c0ea
push 0
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
push esi
push dword [ebp + 0xc]
lea ecx, [ebp + 0x6c]
call fcn.00437813
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
call fcn.0048f820
add eax, dword [ebp - 0x68]
adc edx, dword [ebp - 0x64]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
lea eax, [edi + esi]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.00437813
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.0048f820
add eax, dword [ebp - 0x68]
adc edx, dword [ebp - 0x64]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x6c]
call fcn.00437813
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
call fcn.0048f820
add eax, dword [ebp - 0x68]
adc edx, dword [ebp - 0x64]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
push esi
push dword [ebp - 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00437813
mov al, byte [ebp + 0x5b]
or al, byte [ebp + 0x5a]
or al, byte [ebp + 0x3c]
je 0x45cec4
and dword [ebp + 0x54], 0
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
mov bl, byte [ebp + 0x32]
xor edi, edi
cmp dword [ebp - 0x18], edi
jl 0x45c245
cmp bl, 0x20
je 0x45c1d1
cmp bl, 0x10
jne 0x45c1d7
cmp dword [ebp - 0x38], 0xb
je 0x45c1fb
test byte [ebp + 0x5a], 0x20
jne 0x45c1fb
cmp byte [ebp + 0x5a], 0
je 0x45c1e9
cmp dword [ebp - 0x38], 0xb
je 0x45c1fb
test byte [ebp + 0x5b], 0x20
jne 0x45c1fb
cmp byte [ebp + 0x5b], 0
je 0x45c245
cmp dword [ebp - 0x38], 0xb
jne 0x45c245
test byte [0x4be2e0], 0x20
jne 0x45c216
test byte [ebp + 0x68], 0x20
jne 0x45c216
push 1
push dword [ebp - 0x18]
call fcn.00449aa7
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4be2e0], 0x10
jne 0x45c241
test byte [ebp + 0x68], 0x11
jne 0x45c241
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x18]
call fcn.00404c82
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x3c], 0
jne 0x45c25b
cmp bl, 1
je 0x45c25b
cmp bl, 0x20
je 0x45c25b
cmp byte [ebp + 0x5a], 0
je 0x45c29f
push dword [ebp + 0x6c]
call fcn.0043b29d
pop ecx
push edi
lea eax, [ebp - 0x154]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x154], edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x45c28c
xor eax, eax
jmp 0x45c292
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp bl, 1
je 0x45c29c
cmp bl, 0x20
jne 0x45c29f
mov dword [ebp - 4], eax
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
xor eax, eax
test byte [ebp + 0x5b], 0x20
jne 0x45c2c5
cmp byte [ebp + 0x5b], al
je 0x45c2ba
cmp dword [ebp - 0x38], 0xb
je 0x45c2c5
cmp bl, 0x10
jne 0x45c2e9
cmp dword [ebp - 0x38], 0xc
je 0x45c2e9
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
push 0x4a4be4
push 1
push edi
push dword [ebp - 0xb0]
call fcn.0044154d
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x53], 0
je 0x45c2f8
cmp dword [ebp + 0x54], edi
jne 0x45a23f
cmp bl, 0x10
mov esi, eax
je 0x45c302
mov esi, dword [ebp - 4]
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, edi
je 0x45d02e
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d02e
cmp dword [ebp - 8], ebx
jge 0x45c35f
mov eax, dword [ebp - 0xa0]
cmp word [eax], bx
jne 0x45c35f
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45ce45
mov edi, dword [ebp - 0x94]
mov dword [ebp + 0x14], 0x1b8
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
cmp word [edi], bx
je 0x45c4a8
push edi
push 0x4acf80
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45c4a8
push edi
push 0x4a7ff0
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45c4a8
push edi
push 0x4acf7c
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45c3d5
mov dword [ebp - 0x38], 0x4bc340
mov dword [ebp + 0x14], 0x190
jmp 0x45c4c8
push edi
push 0x4acf78
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45c3f9
mov dword [ebp - 0x38], 0x4bc4d0
mov dword [ebp + 0x14], 0x180
jmp 0x45c4c8
mov dword [ebp + 0x14], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
jne 0x45c430
lea eax, [ebp - 0x70]
push eax
inc edi
lea eax, [ebp - 0x94]
inc edi
push eax
mov dword [ebp - 0x94], edi
call fcn.00441bc2
mov edi, dword [ebp - 0x94]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45c430
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45c46e
push edi
lea ecx, [ebp + 0x2c]
call fcn.00445746
push ebx
lea eax, [ebp - 0x160]
push eax
push str.EXEDATA
push dword [ebp + 0x2c]
push ebx
call fcn.00412ff6
add esp, 0x14
lea ecx, [ebp + 0x2c]
mov dword [ebp - 0x38], eax
call fcn.00437884
mov eax, dword [ebp - 0x15c]
mov dword [ebp + 0x14], eax
jmp 0x45c485
lea eax, [ebp + 0x14]
push eax
push ebx
push edi
call fcn.0040e4ac
add esp, 0xc
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x6c], ebx
jl 0x45c4b6
jg 0x45c491
cmp dword [ebp - 0x70], ebx
jb 0x45c4b6
cmp ebx, dword [ebp - 0x6c]
jl 0x45c4b6
jg 0x45c4a0
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x70]
jbe 0x45c4b6
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x14], eax
jmp 0x45c4b6
mov dword [ebp - 0x38], 0x4bc650
mov dword [ebp + 0x14], 0x1b8
cmp dword [ebp + 0x14], ebx
jbe 0x45c666
cmp dword [ebp - 0x38], ebx
je 0x45c666
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xb0]
lea ecx, [ebp + 0x6c]
call fcn.004050ca
cmp dword [ebp + 0x6c], ebx
je 0x45c666
mov esi, dword [ebp + 0x14]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 0x40]
call fcn.0043d29b
mov edi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x90]
add edi, 0x200
and edi, 0xfffffe00
lea eax, [edi + esi]
mov dword [ebp + 0x20], eax
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0x8c]
je 0x45c547
push ebx
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
cmp eax, dword [ebp - 0x68]
jne 0x45c63f
cmp edx, dword [ebp - 0x64]
jne 0x45c63f
push ebx
lea eax, [ebp - 0x24]
push eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45c63f
push esi
push dword [ebp + 0x20]
push edi
call fcn.0041255f
mov eax, dword [ebp + 0x14]
add esp, 0xc
cmp eax, 0x1b8
jle 0x45c58f
mov eax, 0x1b8
push eax
push dword [ebp - 0x38]
push dword [ebp + 0x20]
call fcn.0041255f
mov eax, dword [ebp + 0x20]
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov eax, dword [ebp + 0x14]
add esp, 0xc
cmp eax, 0x200
jbe 0x45c5d9
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x38]
add eax, 0x200
push eax
mov eax, dword [ebp + 0x20]
add eax, 0x200
push eax
call fcn.0041255f
add esp, 0xc
push esi
push dword [ebp + 0x20]
push edi
call fcn.0043d677
add esp, 0xc
test eax, eax
jne 0x45c627
push ebx
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x10
cmp eax, dword [ebp - 0x68]
jne 0x45c63f
cmp edx, dword [ebp - 0x64]
jne 0x45c63f
push ebx
lea eax, [ebp - 0x24]
push eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.0043b29d
cmp esi, ebx
pop ecx
je 0x45c63f
lea ecx, [ebp - 0x40]
call fcn.00437884
lea ecx, [ebp - 0x160]
call fcn.00437884
jmp 0x45d004
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x45c64e
xor esi, esi
inc esi
lea ecx, [ebp - 0x40]
call fcn.00437884
lea ecx, [ebp - 0x160]
call fcn.00437884
jmp 0x45cd42
lea ecx, [ebp - 0x160]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45ce87
cmp dword [ebp + 0x60], ebx
jle 0x45c33b
cmp dword [ebp - 8], ebx
jge 0x45c6b2
mov eax, dword [ebp - 0xa0]
cmp word [eax], bx
je 0x45c33b
xor eax, eax
cmp dword [ebp - 8], ebx
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
mov dword [ebp + 0x2c], esi
jge 0x45c6d1
xor al, al
jne 0x45c700
jmp 0x45c33b
push dword [ebp - 0x9c]
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp]
push dword [ebp + 0x60]
push dword [ebp - 8]
push eax
call fcn.004585a1
add esp, 0x1c
cmp dword [ebp + 0x2c], ebx
jle 0x45c671
mov eax, dword [ebp - 0x4c]
mov dword [ebp + 0x10], edi
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
cmp word [eax], bx
je 0x45c871
push eax
push 0x4acf80
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45c871
push dword [ebp - 0x4c]
push 0x4a7ff0
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45c871
mov edi, dword [ebp - 0x4c]
push edi
push 0x4acf78
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45c768
push 8
jmp 0x45c873
push edi
push str.nt6fat
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45c86d
push edi
push str.winfat
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45c86d
push edi
push 0x4acf7c
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45c7aa
push 6
jmp 0x45c873
push edi
push str.nt5fat
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45c7c2
push 5
jmp 0x45c873
mov dword [ebp + 0x10], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
jne 0x45c7f0
lea eax, [ebp - 0x70]
push eax
inc edi
lea eax, [ebp - 0x4c]
inc edi
push eax
mov dword [ebp - 0x4c], edi
call fcn.00441bc2
mov edi, dword [ebp - 0x4c]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45c7f0
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45c82e
push edi
lea ecx, [ebp + 0x2c]
call fcn.00445746
push ebx
lea eax, [ebp - 0x118]
push eax
push str.EXEDATA
push dword [ebp + 0x2c]
push ebx
call fcn.00412ff6
add esp, 0x14
lea ecx, [ebp + 0x2c]
mov dword [ebp + 0x28], eax
call fcn.00437884
mov eax, dword [ebp - 0x114]
mov dword [ebp + 0x10], eax
jmp 0x45c845
lea eax, [ebp + 0x10]
push eax
push ebx
push edi
call fcn.0040e4ac
add esp, 0xc
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x6c], ebx
jl 0x45c866
jg 0x45c851
cmp dword [ebp - 0x70], ebx
jb 0x45c866
cmp ebx, dword [ebp - 0x6c]
jl 0x45c866
jg 0x45c860
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x70]
jbe 0x45c866
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x28], ebx
jne 0x45c89c
jmp 0x45c8c9
push 7
jmp 0x45c873
push 9
pop eax
push ebx
lea ecx, [ebp - 0x118]
push ecx
push 0x4a4284
push eax
push ebx
call fcn.00412ff6
add esp, 0x14
cmp dword [ebp + 0x10], ebx
mov dword [ebp + 0x28], eax
je 0x45c8c9
mov eax, dword [ebp - 0x114]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], ebx
jbe 0x45c8c9
cmp dword [ebp + 0x28], ebx
je 0x45c8c9
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xb0]
lea ecx, [ebp + 0x6c]
call fcn.004050ca
cmp dword [ebp + 0x6c], ebx
jne 0x45c8d4
lea ecx, [ebp - 0x118]
jmp 0x45c66c
push 0
push 0x200
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.0048f820
mov ebx, eax
add ebx, dword [ebp - 0x134]
mov esi, edx
adc esi, dword [ebp - 0x130]
push 0
push esi
push ebx
push dword [ebp + 0x6c]
mov dword [ebp - 0x1b0], esi
call fcn.004389fe
add esp, 0x10
cmp eax, ebx
jne 0x45c919
cmp edx, esi
je 0x45c948
lea ecx, [ebp - 0x118]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
test eax, eax
jmp 0x45ce87
mov esi, dword [ebp + 0x10]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 0x34]
call fcn.0043d29b
mov eax, dword [ebp - 0x34]
add eax, 0x200
and eax, edi
push 0
lea edi, [eax + esi]
mov dword [ebp + 0x2c], eax
lea eax, [ebp - 0x24]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45c9b7
push esi
push edi
push dword [ebp + 0x2c]
call fcn.0041255f
push 0
push dword [ebp - 0x1b0]
push ebx
push dword [ebp + 0x6c]
call fcn.004389fe
add esp, 0x1c
cmp eax, ebx
jne 0x45c9b7
cmp edx, dword [ebp - 0x1b0]
je 0x45c9c4
lea ecx, [ebp - 0x34]
call fcn.00437884
jmp 0x45c919
mov ebx, dword [ebp + 0x10]
push 3
push dword [ebp + 0x28]
push edi
call fcn.0041255f
mov eax, 0x1fe
add esp, 0xc
cmp ebx, eax
jle 0x45c9e0
mov ebx, eax
add ebx, 0xffffffe2
push ebx
mov ebx, dword [ebp + 0x28]
lea eax, [ebx + 0x1e]
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.0041255f
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, 0x200
jbe 0x45ca2b
add eax, 0xfffffe00
push eax
add ebx, 0x200
lea eax, [edi + 0x200]
push ebx
push eax
call fcn.0041255f
add esp, 0xc
push esi
push edi
push dword [ebp + 0x2c]
xor ebx, ebx
inc ebx
call fcn.0043d677
add esp, 0xc
test eax, eax
jne 0x45ca5a
push eax
lea eax, [ebp - 0x24]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov ebx, eax
call fcn.0043b29d
pop ecx
xor eax, eax
test ebx, ebx
sete al
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.00437884
lea ecx, [ebp - 0x118]
call fcn.00437884
jmp 0x45b8a0
push 0x103c
lea ecx, [ebp]
call fcn.0043d3ea
mov ecx, dword [ebp - 0x98]
mov esi, dword [ebp]
mov ax, word [ecx]
add esi, 0x2000
cmp ax, bx
mov edi, 0x4a4be4
je 0x45cae7
cmp word [ecx + 2], 0x3a
jne 0x45cae7
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 0x45cadb
cmp dword [ebp - 0x88], 0x10
jne 0x45cb32
mov edi, 0x4a4bc4
cmp eax, 5
jne 0x45cb32
mov edi, 0x4a4bd4
jmp 0x45cb32
mov eax, dword [ebp - 8]
cmp eax, ebx
jl 0x45cb32
cmp dword [ebp - 0x88], 8
jne 0x45cb0b
push eax
push str..CDROM_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov edi, 0x4a4bd4
jmp 0x45cb2f
cmp dword [ebp - 0x88], 0x10
jne 0x45cb22
and eax, 0xfff
mov esi, eax
mov edi, 0x4a4bc4
jmp 0x45cb32
push eax
push str..PhysicalDrive_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push edi
push 0x20
push dword [ebp]
push esi
call fcn.0044154d
add esp, 0x10
jmp 0x45cff0
cmp byte [ebp - 0x12], 0
je 0x45cb55
cmp dword [ebp - 0x18], ebx
jl 0x45cfb0
mov al, byte [ebp - 9]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x18]
or eax, dword [ebp - 0xec]
push eax
lea eax, [ebp]
push eax
call fcn.004581eb
pop ecx
pop ecx
jmp 0x45cfb0
cmp dword [ebp - 0x18], ebx
jl 0x45cfb0
cmp byte [ebp - 0x26], 0
je 0x45cb93
cmp dword [ebp + 0x60], ebx
jl 0x45cfb0
push dword [ebp - 0x9c]
movsx eax, byte [ebp - 9]
or eax, dword [ebp - 0x2c]
push ebx
push ebx
push eax
push dword [ebp + 0x60]
lea eax, [ebp]
push dword [ebp - 0x18]
push eax
call fcn.004585a1
add esp, 0x1c
jmp 0x45cfb0
mov eax, dword [ebp - 0x98]
mov ax, word [eax]
movzx esi, ax
and esi, 0xffffffdf
cmp esi, 0x41
jl 0x45cfa8
cmp esi, 0x5a
jg 0x45cfa8
cmp dword [ebp - 0x88], ebx
jle 0x45cc58
push 0x488
lea ecx, [ebp - 0x40]
call fcn.0043d29b
mov edi, dword [ebp - 0x40]
push 0x288
add edi, 0x200
push ebx
push edi
call fcn.0048f710
mov eax, esi
shl eax, 0x10
or eax, dword [ebp - 0x88]
push eax
push dword [ebp - 0x40]
push edi
call fcn.00449466
lea eax, [esi + esi*2 - 0xc3]
lea edi, [edi + eax*8]
add esp, 0x18
cmp dword [edi + 8], ebx
jle 0x45cc4b
push 0x64
lea ecx, [ebp]
call fcn.0043d3ea
push esi
push dword [edi + 4]
push str._d__c:
push dword [ebp]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x40]
call fcn.00437884
jmp 0x45cfa8
mov ecx, dword [ebp]
mov word [ecx], ax
mov eax, dword [ebp]
cmp word [eax], bx
je 0x45cfa8
push dword [ebp - 0x9c]
mov eax, dword [ebp - 0x2c]
push ebx
and eax, 0xfffffffd
push ebx
or eax, 0xc
push eax
push dword [ebp + 0x60]
lea eax, [ebp]
push dword [ebp - 0x18]
push eax
call fcn.004585a1
add esp, 0x1c
jmp 0x45cfa8
cmp dword [ebp - 8], ebx
jge 0x45cd15
mov ecx, dword [ebp - 0x98]
cmp word [ecx], bx
je 0x45cd12
mov eax, ecx
cmp word [eax + 2], 0x3a
jne 0x45cd00
cmp word [eax + 4], 0x5c
jne 0x45ccbd
cmp word [eax + 6], bx
jne 0x45ccbd
mov word [eax + 4], bx
cmp word [eax + 4], bx
jne 0x45cd00
push 9
lea ecx, [ebp + 0x4c]
call fcn.0043d3ea
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0x98]
mov word [eax], 0x5c
mov word [eax + 2], 0x5c
mov word [eax + 4], 0x2e
mov word [eax + 6], 0x5c
mov cx, word [ecx]
mov word [eax + 8], cx
mov word [eax + 0xa], 0x3a
mov word [eax + 0xc], bx
jmp 0x45cd12
push esi
push dword [ebp - 0x98]
lea ecx, [ebp + 0x4c]
call fcn.0043d4c9
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x60], esi
cmp dword [ebp + 0x60], ebx
jg 0x45cd1d
mov dword [ebp + 0x60], esi
push eax
push dword [ebp + 0x60]
lea eax, [ebp]
push dword [ebp - 8]
push eax
call fcn.00404a5b
jmp 0x45cfa5
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x4c]
mov esi, eax
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45c319
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45a285
lea ecx, [ebp - 0x1c]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
jmp 0x45d004
lea ecx, [ebp - 0x1c]
jmp 0x45cdfc
lea ecx, [ebp - 0x1c]
jmp 0x45ce19
lea ecx, [ebp + 0x4c]
call fcn.00437884
jmp 0x45c671
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, ebx
je 0x45a205
push eax
jmp 0x45a1ff
lea ecx, [ebp - 0x34]
call fcn.00437884
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
jmp 0x45c924
lea ecx, [ebp - 0x34]
call fcn.00437884
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
test eax, eax
je 0x45ce4e
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45d02e
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, esi
je 0x45a17a
push eax
jmp 0x45a174
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, edi
jmp 0x45ce45
lea ecx, [ebp + 0xc]
call fcn.00437884
lea ecx, [ebp + 0x4c]
call fcn.00437884
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
test eax, eax
jmp 0x45d023
push 0x1000
lea ecx, [ebp]
call fcn.0043d3ea
cmp dword [ebp - 8], ebx
jl 0x45cf82
push 0x488
lea ecx, [ebp + 0x2c]
call fcn.0043d29b
mov edi, dword [ebp + 0x2c]
push 0x288
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.0048f710
push dword [ebp - 0x88]
push edi
push esi
call fcn.00449466
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 8]
cmp dword [eax], ecx
je 0x45cf53
inc edi
add eax, 0x18
cmp edi, 0x1a
jle 0x45cf41
jmp 0x45cf7a
push 0x64
lea ecx, [ebp]
call fcn.0043d3ea
lea eax, [edi + edi*2]
lea eax, [esi + eax*8]
push dword [eax + 0x10]
push dword [eax + 4]
push str._d___c_
push dword [ebp]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x2c]
jmp 0x45cc4e
cmp byte [ebp - 0x12], 0
jne 0x45cfa8
cmp byte [ebp + 0x4b], 4
mov eax, 0x4a4bd4
je 0x45cf98
mov eax, 0x4a4bc4
push eax
push ebx
push dword [ebp]
push dword [ebp - 8]
call fcn.0044154d
add esp, 0x10
lea ecx, [ebp + 0x4c]
call fcn.00437884
mov ecx, dword [ebp - 0x1a8]
cmp ecx, ebx
jle 0x45cff0
mov eax, dword [ebp]
dec ecx
mov dword [ebp - 0x154], ecx
push ebx
lea ecx, [ebp]
push ecx
mov ecx, dword [ebp - 0x12c]
push eax
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x154]
push eax
mov dword [ebp], ebx
call fcn.0043fbd8
lea ecx, [ebp - 0xbc]
call fcn.00437884
push dword [ebp]
mov ecx, dword [ebp - 0x12c]
push dword [ebp - 0xc8]
call fcn.0043cc80
lea ecx, [ebp + 0x5c]
call fcn.00437884
lea ecx, [ebp + 0x68]
call fcn.0043b2d6
lea ecx, [ebp + 0x6c]
call fcn.00402b8a
mov eax, 0x4beadc
cmp eax, ebx
je 0x45d02c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
lea ecx, [ebp - 0xa0]
call fcn.00437884
lea ecx, [ebp - 0xc8]
call fcn.00437884
lea ecx, [ebp - 0x98]
call fcn.00437884
lea ecx, [ebp - 0x1d4]
call fcn.00437884
lea ecx, [ebp]
call fcn.00437884
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8