Function at 0x458e0f
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, 0x39c
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0x12c], ecx
call fcn.004379a9
pop ecx
push 5
lea ecx, [ebp - 4]
call fcn.0043d49b
push 0x14
lea ecx, [ebp - 0x1ec]
call fcn.0043d49b
lea ecx, [ebp - 0x94]
call fcn.0043d47d
lea ecx, [ebp - 0xc4]
call fcn.0043d47d
lea ecx, [ebp - 0xa0]
call fcn.0043d47d
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x28], eax
push 0x2c
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x1d0], esi
mov dword [ebp - 0x1cc], esi
mov dword [ebp - 0x10], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x88], esi
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xec], esi
mov byte [ebp - 0x29], bl
mov byte [ebp - 9], bl
mov byte [ebp - 0x5d], bl
mov byte [ebp - 0x5e], bl
mov byte [ebp + 0x39], bl
mov byte [ebp + 0x47], bl
mov byte [ebp - 0xa], bl
mov byte [ebp - 0x5f], bl
mov dword [ebp - 0x84], ebx
call fcn.0043fe29
mov eax, dword [ebp - 0xc4]
mov word [eax], bx
mov eax, dword [ebp - 0x28]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x458f51
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x28], eax
push 0x2c
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043fe29
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x2c], 0
mov byte [ebp + 0x4f], 0
mov byte [ebp - 0x6e], 0
mov byte [ebp + 0x23], 0
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x55], 0
mov byte [ebp + 0x2d], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x38], 0
mov byte [ebp + 0x57], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x3a], 0
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x15], 0
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x9c], 0
mov byte [ebp + 0x1b], 0
mov dword [ebp + 0xc], 0xfffff000
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x1a0], esi
je 0x459866
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x458fe8
or byte [ebp + 0x2c], 1
jmp 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459008
or byte [ebp + 0x2c], 2
jmp 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x45902b
or byte [ebp - 0x10a], 1
jmp 0x4597e5
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x45904e
or byte [ebp - 0x10a], 2
jmp 0x4597e5
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x459811
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4590a4
or dword [ebp - 0x40], 1
jmp 0x4597e5
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4590c6
or dword [ebp - 0x40], 2
jmp 0x4597e5
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4ad170
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4590e6
or dword [ebp - 0x40], 0x10
jmp 0x4597e5
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459105
or dword [ebp - 0x40], edi
jmp 0x4597e5
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ad164
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459125
mov byte [ebp + 0x38], 1
jmp 0x4597e5
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459144
mov byte [ebp + 0x57], 1
jmp 0x4597e5
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459164
mov byte [ebp + 0x57], 0x21
jmp 0x4597e5
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459183
mov byte [ebp + 0x5f], 1
jmp 0x4597e5
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4591a3
mov byte [ebp + 0x5f], 0x21
jmp 0x4597e5
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4591c2
mov byte [ebp + 0x3a], 1
jmp 0x4597e5
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4591e1
mov byte [ebp - 0x5e], 1
jmp 0x4597e5
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459200
mov byte [ebp - 0x39], 1
jmp 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4a6ca8
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459220
mov byte [ebp - 0x5d], 1
jmp 0x4597e5
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ad130
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459240
mov byte [ebp - 0x5f], 1
jmp 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459260
or byte [ebp - 0xa], 0x40
jmp 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459280
mov byte [ebp + 0x47], 3
jmp 0x4597e5
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x45929f
inc edi
mov byte [ebp + 0x47], 3
inc edi
jmp 0x4592b7
push 6
push edi
push str._lock:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x459322
mov byte [ebp + 0x47], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x4592f0
mov eax, ecx
call fcn.00482120
test al, al
jne 0x4592f0
push ecx
call fcn.0041270e
add esp, 4
test al, al
jne 0x4592f0
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x20], edi
call fcn.004050f3
jmp 0x45945b
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004050d3
lea eax, [ebp - 0x1d0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004050d3
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
pop ecx
jmp 0x4597e5
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459342
mov byte [ebp + 0x47], 1
jmp 0x4597e5
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x459277
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459389
mov byte [ebp + 0x47], 0xf0
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], esi
jmp 0x4597e5
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x4ad0f0
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x4593ee
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4593bc
cmp ax, 0x3d
je 0x4593bc
call fcn.00482120
test al, al
je 0x4593ee
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0x4c], ebx
je 0x4593d7
mov dword [ebp - 0x98], 0x4ad0e8
jmp 0x459313
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
mov eax, dword [eax]
mov dword [ebp - 0x98], eax
jmp 0x459451
push 4
push edi
push str._pbr
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x459474
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45941e
cmp ax, 0x3d
je 0x45941e
call fcn.00482120
test al, al
je 0x459474
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x98], ebx
push eax
je 0x459443
mov dword [ebp - 0x4c], 0x4a450a
call fcn.004050f3
pop ecx
jmp 0x459313
add dword [ebp + 0x78], 2
call fcn.004379a9
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.004050f3
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x459313
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x459313
push 9
push edi
push str._alignend
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x4594fb
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4594a4
cmp ax, 0x3d
je 0x4594a4
call fcn.00482120
test al, al
je 0x4594fb
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x4594ec
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0041270e
add esp, 4
test al, al
je 0x4597c9
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp + 0x28], ecx
call fcn.00441c9a
cmp dword [ebp - 0x50], ebx
pop ecx
pop ecx
jg 0x4597c9
jl 0x4594ec
cmp dword [ebp - 0x54], ebx
ja 0x4597c9
mov dword [ebp - 0x54], 0xfffffffe
mov dword [ebp - 0x50], esi
jmp 0x4597c9
push 6
push edi
push str._align
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x45959a
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45952f
cmp ax, 0x3d
je 0x45952f
call fcn.00482120
test al, al
je 0x45959a
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.004050f3
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x459559
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
jmp 0x4597e5
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.0041270e
add esp, 4
test al, al
je 0x4597e5
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp + 0x28], ecx
call fcn.00441c9a
cmp dword [ebp - 0x7c], ebx
pop ecx
pop ecx
jg 0x4597e5
jl 0x45954e
cmp dword [ebp - 0x80], ebx
ja 0x4597e5
jmp 0x45954e
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4595bc
mov byte [ebp - 0x6e], 1
jmp 0x4597e5
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4a71e0
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x4597e1
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0043f1bd
add esp, 0xc
test al, al
jne 0x4597e1
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459616
or dword [ebp - 0x40], 0x20
mov byte [ebp - 0x32], 1
jmp 0x4597e5
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x45964f
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004488bd
test eax, eax
pop ecx
pop ecx
jl 0x45cee2
mov byte [ebp + 0x1b], 1
jmp 0x4597e5
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x4596ee
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x50], edi
call fcn.0040507c
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0041270e
add esp, 0xc
test al, al
je 0x4596a9
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.00441c9a
pop ecx
pop ecx
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x3a
jne 0x4596c8
add dword [ebp + 0x50], 2
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.00441c9a
pop ecx
pop ecx
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x3a
jne 0x4597e5
add dword [ebp + 0x50], 2
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.00441c9a
jmp 0x4597db
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.00438b8f
add esp, 0xc
test al, al
jne 0x4597f1
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x45974f
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x48], 0x42
call fcn.004488bd
mov al, byte [ebp - 0x48]
add esp, 0xc
mov byte [ebp - 0x9c], al
jmp 0x4597e5
push 4
push dword [ebp + 0x78]
push str._iv
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x45977b
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004488bd
jmp 0x4597db
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x45979d
mov dword [ebp - 0x84], 8
jmp 0x4597e5
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4597c0
mov dword [ebp - 0x84], 0x10
jmp 0x4597e5
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x4597f1
lea eax, [ebp + 0x78]
push eax
call fcn.004050f3
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
pop ecx
jmp 0x45931c
mov byte [ebp + 0x23], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x458fc8
cmp dword [ebp - 0x54], 0xfffffffe
jne 0x45985b
cmp dword [ebp - 0x50], esi
jne 0x45985b
mov eax, dword [ebp - 0x80]
cmp eax, 0xfffffff7
jne 0x459852
cmp dword [ebp - 0x7c], esi
jne 0x459852
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
jmp 0x459866
push str.21:INDATA
lea ecx, [ebp - 0x9c]
call fcn.004457e4
push dword [ebp + 0x78]
lea ecx, [ebp - 0x9c]
call fcn.0043d4e9
push dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x12c]
call fcn.0042ee8f
lea ecx, [ebp - 0x9c]
mov esi, eax
call fcn.00437960
jmp 0x45d0c2
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x80], 0xfffffff7
jne 0x459870
cmp dword [ebp - 0x7c], esi
jne 0x459870
mov dword [ebp - 0x80], 1
mov dword [ebp - 0x7c], ebx
cmp dword [ebp - 0x54], 0xfffffff7
jne 0x459887
cmp dword [ebp - 0x50], esi
jne 0x459887
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x50], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4ad06c
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459988
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4598c3
mov byte [ebp + 0x4f], 1
jmp 0x459988
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4598e2
mov byte [ebp + 0x4f], 2
jmp 0x459988
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ad060
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459902
mov byte [ebp + 0x4f], 3
jmp 0x459988
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459929
mov byte [ebp + 0x4f], 4
mov dword [ebp - 0x84], 8
jmp 0x459988
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459950
mov byte [ebp + 0x4f], 5
mov dword [ebp - 0x84], 0x10
jmp 0x459988
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x45996d
mov byte [ebp + 0x4f], 6
jmp 0x459988
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459988
mov byte [ebp + 0x4f], 7
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x2f], 0
call fcn.0043f1bd
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x4599ac
mov byte [ebp + 0x39], 1
mov dword [ebp + 0x60], edi
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4599ca
mov byte [ebp + 0x2f], 1
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4599e8
mov byte [ebp + 0x2f], 0x20
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x459a06
mov byte [ebp + 0x2f], 0x10
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.004050f3
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x94]
call fcn.0043d5a1
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x459a50
mov dword [ebp - 0x88], 0x80
jmp 0x459a6a
cmp ax, 0x2d
jne 0x459a74
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x459a74
mov dword [ebp - 0x88], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.004050f3
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 - 0x19c], 0xebd0a0a2
mov word [ebp - 0x198], 0xb9e5
mov word [ebp - 0x196], 0x4433
mov byte [ebp - 0x194], 0x87
mov byte [ebp - 0x193], 0xc0
mov byte [ebp - 0x192], 0x68
mov byte [ebp - 0x191], 0xb6
mov byte [ebp - 0x190], 0xb7
mov byte [ebp - 0x18f], 0x26
mov byte [ebp - 0x18e], 0x99
mov byte [ebp - 0x18d], 0xc7
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x48], str.MS_Basic_Data
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x140], ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp byte [ebp + 0x3a], 0
jne 0x459b5a
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004488bd
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x459b81
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.0041270e
add esp, 4
test al, al
jne 0x459b81
mov ecx, edx
mov byte [ebp - 0x55], 1
mov dword [ebp + 0x78], ecx
jmp 0x459b81
push ebx
lea eax, [ebp - 0x19c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004499a9
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x158], eax
jne 0x459b7e
push edi
jmp 0x45d0ba
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x459b91
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x29], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x459ba2
lea eax, [ebp + 0x78]
push eax
call fcn.0040507c
jmp 0x459bb6
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00441dc5
pop ecx
mov dword [ebp - 0x160], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x6d], 1
jne 0x459bcd
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x6d], 0
cmp word [eax], 0x2d
jne 0x459bde
lea eax, [ebp + 0x78]
push eax
call fcn.0040507c
jmp 0x459bf2
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00441dc5
pop ecx
mov dword [ebp - 0x140], eax
cmp byte [ebp + 0x3a], 0
pop ecx
je 0x459c29
push ebx
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004499a9
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00441c9a
add esp, 0x14
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1ac], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x459c80
cmp byte [ebp + 0x3a], 0
je 0x459c80
cmp cx, bx
je 0x459c80
mov dword [ebp - 0x1c0], eax
push ebx
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.00418d74
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1ac]
add esp, 0xc
mov dword [ebp - 0x164], 1
mov dword [ebp - 0x48], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x4f], 1
mov byte [ebp - 0xb], 0
mov byte [ebp - 0x43], 0
mov byte [ebp - 0x42], 0
je 0x459c9b
cmp byte [ebp + 0x4f], 4
jge 0x459c9b
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x94]
push 5
push ebx
mov edi, ebx
push str._img
mov dword [ebp + 0x78], edi
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x459d69
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edx, ecx
jne 0x459d1c
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp + 0x24]
add ecx, 2
push eax
mov dword [ebp + 0x24], ecx
call fcn.00441dc5
mov edx, dword [ebp + 0x24]
cmp word [edx], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x42], 1
jne 0x459d17
lea eax, [ebp - 0x11c]
push eax
inc edx
lea eax, [ebp + 0x24]
inc edx
push eax
mov dword [ebp + 0x24], edx
call fcn.00441dc5
mov edx, dword [ebp + 0x24]
cmp word [edx], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x42], 0x11
jne 0x459d17
inc edx
inc edx
mov ecx, edx
mov dword [ebp + 0x78], ecx
xor edi, edi
jmp 0x459d36
mov eax, edi
call fcn.00482120
test al, al
jne 0x459d3e
cmp di, 0x23
je 0x459d3e
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov di, word [ecx]
test di, di
jne 0x459d20
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x459d5a
push ecx
push edx
lea ecx, [ebp - 0xa0]
call fcn.0043d5a1
mov dword [ebp - 0x10], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.004379a9
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x459da9
push 2
push ebx
push 0x4acff8
call fcn.00438b8f
add esp, 0xc
test al, al
je 0x459d83
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043d0ab
test al, al
je 0x459da1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043a0e5
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0xb]
push 0
push 0x200
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.0048f8b0
mov dword [ebp - 0x78], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x74], edx
je 0x459dda
cmp ax, 0x3a
jne 0x459e79
inc edi
inc edi
push 2
push edi
push 0x4acff4
mov dword [ebp + 0x78], edi
call fcn.00438b8f
push 2
push edi
push 0x4acff0
mov byte [ebp + 0x67], al
call fcn.00438b8f
mov byte [ebp + 0x2d], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x2d]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x43], al
jne 0x459e26
cmp word [edi], 0x2b
jne 0x459e26
inc edi
inc edi
mov byte [ebp - 0x15], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x2d], 0
jne 0x459e4a
mov ax, word [edi]
cmp ax, 0x40
je 0x459e41
cmp ax, 0x2d
je 0x459e41
cmp ax, 0x3d
jne 0x459e4a
or dword [ebp - 0x40], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043d0ab
test al, al
je 0x459e79
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004488bd
test eax, eax
pop ecx
pop ecx
jle 0x459e79
cmp dword [ebp + 0x60], 0
mov byte [ebp - 9], 1
jne 0x459e7d
mov byte [ebp + 0x67], 1
jmp 0x459e7f
cmp dword [ebp + 0x60], 0
jg 0x459e9b
cmp byte [ebp + 0x4f], 0
jg 0x459e9b
cmp dword [ebp - 0x98], 0
jne 0x459e9b
cmp dword [ebp - 0x4c], 0
jne 0x459e9b
xor ecx, ecx
mov dword [ebp + 0x50], ecx
jmp 0x459ea4
mov dword [ebp + 0x50], 1
xor ecx, ecx
cmp byte [ebp + 0x47], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x38], eax
je 0x459ec5
cmp dword [ebp + 0x50], ecx
jne 0x459ec5
cmp word [ebx], cx
jne 0x459ec5
mov eax, 0xfffc0000
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xa0]
lea edi, [ebp - 0x2ac]
mov word [ebp - 0x2ac], cx
cmp word [eax], cx
mov dword [ebp - 0xa4], edi
je 0x459eeb
mov edi, eax
mov dword [ebp - 0xa4], edi
push dword [ebp - 0x10]
lea eax, [ebp - 0x2ac]
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 0x459f38
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x459f38
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x28]
add edi, 0x22
push eax
mov dword [ebp + 0x28], edi
call fcn.00440385
pop ecx
pop ecx
cmp byte [ebp + 0x2f], 0
jne 0x459f4a
cmp byte [ebp + 0x57], 0
jne 0x459f4a
cmp byte [ebp + 0x5f], 0
je 0x459f60
cmp dword [ebp - 0x10], 0
jge 0x459f60
cmp dword [ebp - 0x38], 0
jge 0x459f60
push 0x4beadc
jmp 0x45cedc
and dword [ebp + 0x6c], 0
and dword [ebp - 8], 0
cmp byte [ebp + 0x47], 0
mov edi, 0x80070057
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xa8], edi
mov byte [ebp + 0x68], 0
je 0x45a054
mov ebx, dword [ebp - 0x38]
test ebx, ebx
jge 0x459faa
cmp dword [ebp - 0xdc], esi
jl 0x459faa
jg 0x459f9d
cmp dword [ebp - 0xe0], esi
jbe 0x459faa
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x45a054
jmp 0x459fad
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x459fe0
cmp word [eax], 0x2a
jne 0x459fe0
xor eax, eax
mov al, byte [ebp + 0x47]
and eax, 2
shr eax, 1
push eax
push ebx
call fcn.00449b57
pop ecx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 8], eax
xor eax, eax
or byte [0x4be2e0], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
test ebx, ebx
jge 0x459ffa
cmp dword [ebp - 0xdc], esi
jl 0x459ffa
jg 0x459ff6
cmp dword [ebp - 0xe0], esi
jbe 0x459ffa
test eax, eax
je 0x45a054
push eax
xor eax, eax
mov al, byte [ebp + 0x47]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0xdc]
push dword [ebp - 0xe0]
push ebx
call fcn.00404c9d
mov dword [ebp - 8], eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xe0]
and eax, dword [ebp - 0xdc]
add esp, 0x1c
cmp eax, esi
je 0x45a04d
or byte [ebp + 0x68], 0x10
or byte [0x4be2e0], 0x10
jmp 0x45a054
mov byte [0x4be2e0], 0
cmp byte [ebp + 0x1b], 0
jbe 0x45a299
cmp byte [ebp + 0x3a], 0
jne 0x45a299
xor ebx, ebx
cmp dword [ebp - 0x10], ebx
jge 0x45a07e
mov eax, dword [ebp - 0xa0]
cmp word [eax], bx
je 0x45a277
mov eax, dword [ebp + 0xc]
cmp eax, ebx
jle 0x45a08e
cmp eax, dword [ebp + 0x60]
je 0x45a277
cmp dword [ebp + 0x60], 4
jg 0x45a277
cmp byte [ebp + 0x2c], 2
jl 0x45a277
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.0040511c
cmp dword [ebp + 0x6c], ebx
je 0x45a1c9
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.00441ba4
add esp, 0x10
push 0x600
lea ecx, [ebp + 0x24]
mov dword [ebp - 0x24], eax
call fcn.0043d373
mov esi, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0x30]
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 0x45a14a
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x45a128
xor esi, esi
inc esi
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4beadc
jmp 0x45c3b4
push 0x200
push edi
push esi
call fcn.004125f9
dec dword [ebp + 0xc]
dec dword [ebp + 0x60]
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + esi + 0x1be]
mov dword [ebp + 0x28], eax
push ecx
lea eax, [eax + edi + 0x1be]
push eax
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
call fcn.004125f9
mov eax, dword [ebp + 0x28]
lea eax, [eax + esi + 0x1be]
push 0x10
push eax
lea eax, [ebx + edi + 0x1be]
push eax
call fcn.004125f9
push 0
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x34
test eax, eax
je 0x45a1ec
lea ecx, [ebp + 0x24]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4beadc
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45d0c2
and dword [ebp - 8], 0
mov ebx, 0x200
push ebx
push edi
push esi
call fcn.0043d74f
add esp, 0xc
test eax, eax
jne 0x45a22f
push eax
lea eax, [ebp - 0x30]
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x45a226
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x45a223
inc eax
mov dword [ebp - 8], eax
push dword [ebp + 0x6c]
call fcn.0043b395
pop ecx
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x38]
lea ecx, [ebp + 0x24]
or byte [ebp + 0x57], al
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x57]
or al, byte [ebp + 0x38]
je 0x45a24f
and dword [ebp + 0x50], 0
jmp 0x45c24c
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4beadc
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 8]
jmp 0x45d0c2
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4beadc
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, edi
jmp 0x45d0c2
cmp byte [ebp + 0x2f], 0x10
jne 0x45a2ac
test byte [ebp + 0x5f], 0x20
jne 0x45c251
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x47], bl
mov edi, 0x200
je 0x45a303
cmp dword [ebp + 0x50], ebx
jne 0x45a303
cmp byte [ebp + 0x38], bl
jne 0x45c251
cmp byte [ebp + 0x57], bl
jne 0x45c251
cmp byte [ebp + 0x5f], bl
jne 0x45c251
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
test eax, eax
je 0x45a2f8
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0xa8]
jmp 0x45d0c2
push 0x600
lea ecx, [ebp + 0x58]
call fcn.0043d373
mov eax, dword [ebp + 0x58]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp - 0x98], ebx
mov dword [ebp + 0x1c], eax
jne 0x45c3bf
cmp dword [ebp - 0x4c], ebx
jne 0x45c729
mov cl, byte [ebp + 0x4f]
cmp cl, 6
je 0x45cb0f
cmp cl, 1
je 0x45cbda
cmp cl, 2
je 0x45cc0f
xor eax, eax
cmp cl, 3
mov dword [ebp + 0x48], eax
je 0x45cc4e
cmp cl, 4
je 0x45cf8c
cmp cl, 5
je 0x45cf8c
cmp cl, 7
je 0x45cd27
cmp byte [ebp + 0x2d], al
je 0x45a39d
mov dword [ebp - 0x88], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x67], 0
je 0x45a3aa
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x23], 0
je 0x45a3c5
mov dword [ebp - 0x88], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
cmp byte [ebp - 0xb], 0
je 0x45a3d4
cmp dword [ebp - 0x38], ebx
jl 0x45aebe
cmp byte [ebp - 0x43], 0
je 0x45a3e3
cmp dword [ebp + 0x60], ebx
jl 0x45aebe
dec dword [ebp + 0x60]
cmp byte [ebp + 0x3a], 0
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
mov byte [ebp - 0x60], 0
mov byte [ebp - 0x61], 0
mov dword [ebp + 0x28], ebx
mov byte [ebp + 0x1b], 0
mov byte [ebp - 0x31], 0
mov dword [ebp - 0x5c], ebx
jne 0x45a433
cmp dword [ebp + 0x10], ebx
jne 0x45a433
mov eax, dword [ebp + 0x3c]
or eax, dword [ebp + 0x40]
jne 0x45a433
mov eax, dword [ebp + 0x30]
or eax, dword [ebp + 0x34]
jne 0x45a433
mov byte [ebp + 0x23], 1
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
cmp byte [ebp - 0x5f], 0
je 0x45a651
cmp dword [ebp + 0x40], ebx
jl 0x45a651
jg 0x45a458
cmp dword [ebp + 0x3c], ebx
jb 0x45a651
cmp dword [ebp + 0x34], ebx
jl 0x45a651
jg 0x45a46d
cmp dword [ebp + 0x30], 0x11
jb 0x45a651
push ebx
push edi
push dword [ebp + 0x40]
mov dword [ebp - 0x20], 1
push dword [ebp + 0x3c]
call fcn.0048f8b0
test byte [ebp + 0x68], 0x11
jne 0x45a4a0
push ebx
push ebx
push ebx
push 0x2200
push edx
push eax
push dword [ebp - 0x38]
call fcn.00404c9d
add esp, 0x1c
or byte [ebp + 0x68], 1
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.0040511c
cmp dword [ebp + 0x6c], ebx
je 0x45cdc6
cmp dword [ebp - 0x20], ebx
je 0x45a4ff
cmp byte [ebp + 0x67], 0
jne 0x45a4ff
mov eax, dword [ebp - 0x90]
add eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x8c]
adc ecx, dword [ebp + 0x40]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043329d
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
mov dword [ebp - 0xa8], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.00441ba4
add esp, 0x10
cmp byte [ebp + 0x2f], 0
mov dword [ebp - 0x24], eax
jne 0x45ad22
cmp dword [ebp + 0x10], 0xff
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], ebx
jg 0x45cdfa
cmp byte [ebp + 0x67], 0
jne 0x45a583
cmp dword [ebp + 0x60], ebx
jge 0x45a583
cmp dword [ebp + 0x40], ebx
jg 0x45cdfa
jl 0x45a557
cmp dword [ebp + 0x3c], ebx
jae 0x45cdfa
cmp dword [ebp + 0x34], ebx
jg 0x45cdfa
jl 0x45a56b
cmp dword [ebp + 0x30], ebx
jae 0x45cdfa
cmp dword [ebp + 0x10], ebx
jge 0x45cdfa
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0x17c], esi
mov dword [ebp - 0x178], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], esi
mov dword [ebp + 0x24], eax
jne 0x45a5c8
cmp byte [ebp + 0x2d], 0
jne 0x45a5c8
cmp eax, 4
jl 0x45abbd
cmp byte [ebp + 0x3a], 0
jne 0x45abbd
cmp byte [ebp + 0x39], 0
jne 0x45abbd
cmp byte [ebp + 0x67], 0
je 0x45a5e9
mov dword [ebp + 0x60], 4
cmp dword [ebp + 0x10], 5
je 0x45aebe
cmp dword [ebp + 0x10], 0xf
je 0x45aebe
push 0x100000
lea ecx, [ebp - 0x1c]
mov dword [ebp + 0x50], ebx
call fcn.0043d373
lea eax, [ebp + 0x50]
push eax
push dword [ebp - 0x1c]
push dword [ebp + 0x6c]
call fcn.0043b21c
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x50]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x45a659
cmp edx, ecx
jge 0x45a636
cmp ecx, 4
jge 0x45a69f
cmp byte [ebp + 0x67], 0
jne 0x45a659
cmp byte [ebp + 0x2d], 0
jne 0x45a659
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3b], 0
jg 0x45a68b
dec eax
jmp 0x45a692
mov dword [ebp - 0x20], ebx
jmp 0x45a4a0
cmp byte [ebp + 0x2d], 0
mov byte [ebp + 0x3b], 1
jne 0x45a6a7
cmp byte [ebp + 0x67], 0
je 0x45a6ac
cmp dword [ebp + 0x10], ebx
jl 0x45a69f
cmp word [ebp - 0x88], bx
jle 0x45a683
mov dword [ebp - 0x88], 0x80
jmp 0x45a6ac
mov dword [ebp - 0x88], ebx
jmp 0x45a6ac
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x45a69f
cmp eax, edx
jl 0x45a6ac
cmp ecx, 4
jle 0x45a6ac
lea ecx, [ebp - 0x1c]
jmp 0x45aeb9
cmp edx, 4
jle 0x45a69f
cmp edx, 4
jle 0x45a6bc
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 4], eax
jmp 0x45a6bf
mov dword [ebp + 4], ebx
cmp byte [ebp + 0x3b], 0
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x24], esi
jne 0x45a6df
cmp ecx, 4
jl 0x45a6dc
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 4], eax
jmp 0x45a6df
mov dword [ebp + 4], ebx
mov dword [ebp], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x45a6f3
cmp cl, 0xf
jne 0x45a6f6
mov dword [ebp], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45a6e7
cmp byte [ebp + 0x3b], 0
je 0x45a70c
cmp dword [ebp], ebx
jl 0x45a69f
mov eax, dword [ebp]
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.0048f800
push ebx
push 0x200
push dword [esi + 0x14]
mov dword [ebp - 0x1e8], eax
push dword [esi + 0x10]
mov dword [ebp - 0x1e4], edx
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], edx
call fcn.0048f800
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebp + 4]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x2d], 0
mov dword [ebp - 0x1b0], edx
lea esi, [eax + edi + 0x30]
je 0x45a83b
mov eax, dword [ebp + 0x50]
xor esi, esi
cmp eax, 8
jne 0x45a78e
mov ecx, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1e4]
jmp 0x45a7e1
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 0x45a7bd
cmp cl, 0xf
je 0x45a7bd
inc esi
add eax, 0x90
cmp esi, 4
jl 0x45a7a1
jmp 0x45a69f
push ebx
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.0048f800
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
cmp esi, ebx
jl 0x45a69f
xor eax, eax
mov dword [ebp - 0x224], ebx
lea edi, [ebp - 0x220]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
lea eax, [ebp - 0x224]
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.004420ab
add esp, 0x14
cmp byte [ebp + 0x5f], 0
mov dword [ebp - 8], ebx
jne 0x45a830
cmp byte [ebp + 0x57], 0
jne 0x45a830
cmp byte [ebp + 0x38], 0
je 0x45ce26
mov dword [ebp + 0x50], ebx
lea ecx, [ebp - 0x1c]
jmp 0x45c23c
cmp dword [ebp + 0x50], 4
jg 0x45a849
mov eax, dword [ebp]
mov dword [ebp + 0x14], eax
jmp 0x45a874
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x45a85a
cmp cl, 0xf
jne 0x45a85d
mov dword [ebp + 0x14], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45a84e
cmp byte [ebp + 0x3b], 0
jne 0x45a874
mov eax, dword [ebp + 4]
add dword [ebp + 0x14], eax
cmp dword [ebp + 0x14], ebx
jge 0x45a883
cmp byte [ebp + 0x67], 0
je 0x45a69f
cmp byte [ebp + 0x3b], 0
je 0x45a88e
mov dword [ebp + 0x24], ebx
jmp 0x45a8b8
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x45a8a0
cmp edx, ebx
jne 0x45a8ad
cmp cl, 5
je 0x45a8ad
cmp cl, 0xf
je 0x45a8ad
mov dword [ebp + 0x24], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45a896
cmp byte [ebp + 0x3b], 0
jne 0x45a8c7
cmp dword [ebp + 0x24], ebx
jl 0x45a69f
cmp byte [ebp + 0x67], 0
je 0x45aac4
mov eax, dword [ebp + 4]
cmp eax, ebx
jg 0x45a8db
mov eax, dword [ebp]
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 - 0x16c], ecx
call fcn.0048f800
cmp dword [ebp + 0x50], 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
jle 0x45a9b6
cmp dword [ebp + 0x14], 0
jge 0x45a9b6
cmp byte [esi + 0x20], 0
je 0x45ce3b
mov eax, dword [ebp + 0x50]
cmp eax, 8
jle 0x45a934
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x45a937
mov eax, dword [ebp]
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.0048f800
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x6c], 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 - 0x68], edx
call fcn.0048f800
mov ecx, dword [ebp - 0x1b0]
mov esi, eax
sub eax, dword [ebp - 0x148]
mov edi, edx
mov dword [ebp - 0x17c], eax
mov eax, edi
sbb eax, dword [ebp - 0x144]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x1b4]
sub eax, esi
sbb ecx, edi
add eax, dword [ebp - 0x148]
adc ecx, dword [ebp - 0x144]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], ecx
jmp 0x45aa07
cmp dword [ebp + 4], 0
jle 0x45a9d9
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x14]
adc ecx, dword [ebp - 0x16c]
push 0
push 0x200
push ecx
push eax
call fcn.0048f800
mov ecx, dword [ebp - 0x1b0]
mov esi, eax
mov eax, dword [ebp - 0x1b4]
sub eax, esi
mov edi, edx
sbb ecx, edi
add eax, dword [ebp - 0x148]
adc ecx, dword [ebp - 0x144]
and dword [ebp - 0xf8], 0
and dword [ebp - 0xf4], 0
test ecx, ecx
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], edi
jl 0x45ce40
jg 0x45aa25
test eax, eax
jbe 0x45ce40
cmp byte [ebp - 0x29], 0
je 0x45aa31
add dword [ebp + 0x3c], esi
adc dword [ebp + 0x40], edi
mov ebx, esi
add ebx, 1
mov edx, edi
adc edx, 0
cmp dword [ebp + 0x40], edx
jg 0x45aa4d
jl 0x45aa47
cmp dword [ebp + 0x3c], ebx
ja 0x45aa4d
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], edx
sub eax, dword [ebp + 0x3c]
sbb ecx, dword [ebp + 0x40]
add eax, esi
adc ecx, edi
cmp dword [ebp + 0x34], ecx
jl 0x45aa69
jg 0x45aa63
cmp dword [ebp + 0x30], eax
jbe 0x45aa69
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], ecx
xor ebx, ebx
cmp dword [ebp + 0x34], ebx
jl 0x45a69f
jg 0x45aa7f
cmp dword [ebp + 0x30], ebx
jb 0x45a69f
cmp dword [ebp + 4], ebx
mov eax, dword [ebp + 0x50]
jle 0x45aa9d
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x45aa93
inc eax
jmp 0x45aaa5
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x45aaa5
and eax, 0xfffffffc
cmp eax, 3
jg 0x45aaa8
inc eax
jmp 0x45aab0
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x130], edi
jmp 0x45abae
mov eax, dword [ebp + 0x14]
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 - 0x1d8], eax
mov eax, 0x200
push ebx
add edx, eax
mov dword [ebp - 0x1d4], ecx
push eax
adc ecx, ebx
push ecx
push edx
call fcn.0048f800
mov ecx, dword [esi + 0x10]
mov edi, eax
mov eax, 0x200
mov dword [ebp - 0x1a4], edx
mov dword [ebp - 0xbc], edx
mov edx, dword [esi + 0x14]
push ebx
sub ecx, eax
push eax
sbb edx, ebx
push edx
push ecx
mov dword [ebp - 0xc0], edi
call fcn.0048f800
cmp byte [ebp - 0x29], 0
je 0x45ab35
add dword [ebp + 0x3c], edi
mov ecx, dword [ebp - 0x1a4]
adc dword [ebp + 0x40], ecx
cmp dword [ebp + 0x40], ebx
jl 0x45ab59
jg 0x45ab41
cmp dword [ebp + 0x3c], ebx
jbe 0x45ab59
mov ecx, dword [ebp - 0x1a4]
cmp dword [ebp + 0x40], ecx
jg 0x45ab59
jl 0x45ab53
cmp dword [ebp + 0x3c], edi
ja 0x45ab59
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x40], ecx
cmp dword [ebp + 0x34], ebx
jl 0x45ab8b
jg 0x45ab65
cmp dword [ebp + 0x30], ebx
jbe 0x45ab8b
cmp dword [ebp + 0x34], edx
jl 0x45ab77
jg 0x45ab71
cmp dword [ebp + 0x30], eax
jbe 0x45ab77
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edx
cmp dword [ebp + 0x34], ebx
jl 0x45a69f
jg 0x45ab8b
cmp dword [ebp + 0x30], ebx
jb 0x45a69f
push ebx
push 0x200
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
call fcn.0048f800
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
lea ecx, [ebp - 0x1c]
call fcn.00437960
xor ebx, ebx
mov edi, 0x200
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
setge byte [ebp - 0x41]
add eax, dword [ebp - 0x134]
push ebx
adc ecx, dword [ebp - 0x130]
push edi
push ecx
push eax
call fcn.0048f8b0
cmp dword [ebp - 0x20], ebx
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], edx
je 0x45ac2a
cmp byte [ebp + 0x67], 0
je 0x45ac2a
mov eax, dword [ebp - 0x90]
add eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x8c]
adc ecx, dword [ebp + 0x40]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043329d
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
mov dword [ebp - 0xa8], ebx
mov esi, dword [ebp + 0x1c]
push edi
push ebx
add esi, 0x200
push esi
call fcn.0048f7a0
push ebx
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x1c
cmp eax, dword [ebp - 0x108]
jne 0x45ce45
cmp edx, dword [ebp - 0x104]
jne 0x45ce45
push ebx
lea eax, [ebp - 0x30]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push edi
push esi
push dword [ebp + 0x1c]
mov dword [ebp + 0x50], eax
call fcn.004125f9
add esp, 0xc
cmp dword [ebp + 0x50], ebx
je 0x45ce45
cmp byte [ebp + 0x39], 0
je 0x45ad2a
cmp byte [ebp + 0x3a], 0
jne 0x45ad2a
push esi
call fcn.0043b3ad
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.0048f7a0
push edi
push esi
push dword [ebp + 0x1c]
mov word [esi + 0x1fe], 0xaa55
call fcn.00437a2b
add esp, 0x1c
test eax, eax
je 0x45ad0a
push ebx
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
push ebx
lea eax, [ebp - 0x30]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x30], ebx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 8], eax
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x57]
or al, byte [ebp + 0x38]
je 0x45ce52
cmp dword [ebp - 0x10], ebx
jl 0x45ce52
mov dword [ebp + 0x50], ebx
jmp 0x45c241
cmp byte [ebp + 0x2c], 0
jne 0x45ad40
cmp byte [ebp - 9], 0
je 0x45ad4f
cmp dword [ebp + 0x60], 1
jle 0x45aebe
cmp byte [ebp - 9], 0
je 0x45ad4f
cmp dword [ebp + 0x60], ebx
jl 0x45aebe
push dword [ebp + 0x6c]
call fcn.0043ae4d
lea ecx, [ebp + 8]
mov dword [ebp], eax
mov dword [esp], 0x100000
call fcn.0043d373
cmp dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
jl 0x45ad9c
push dword [ebp + 0x6c]
mov esi, dword [ebp + 8]
call fcn.0043afc8
pop ecx
push ebx
push dword [ebp]
push edx
push eax
call fcn.0048f800
mov esi, dword [ebp - 0x118]
jmp 0x45ae06
mov esi, dword [ebp - 0x118]
cmp esi, ebx
jl 0x45adc2
jg 0x45adb0
cmp dword [ebp - 0x11c], ebx
jb 0x45adc2
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], esi
lea eax, [ebp - 0x248]
push eax
push ebx
push dword [ebp - 0xa4]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesExW]
test eax, eax
je 0x45ae4c
test byte [ebp - 0x248], 0x10
jne 0x45ae4c
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x228]
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 - 0x114], eax
mov dword [ebp - 0x110], edx
jl 0x45ae4c
jg 0x45ae2c
cmp dword [ebp - 0x11c], ebx
jbe 0x45ae4c
cmp edx, esi
ja 0x45ae4c
jb 0x45ae3a
cmp eax, dword [ebp - 0x11c]
jae 0x45ae4c
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], esi
lea eax, [ebp - 0xd0]
push eax
push dword [ebp + 8]
push dword [ebp + 0x6c]
call fcn.0043b21c
mov ecx, dword [ebp - 0xa0]
mov cx, word [ecx]
add esp, 0xc
cmp cx, bx
mov dword [ebp - 0xd0], eax
jne 0x45ae79
cmp eax, ebx
je 0x45aeb6
cmp eax, ebx
je 0x45ae81
mov eax, dword [eax]
jmp 0x45ae83
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x46]
cmp byte [ebp + 0x46], 0
je 0x45ae9a
cmp byte [ebp - 0x5e], 0
mov byte [ebp + 0x2e], 1
je 0x45ae9e
mov byte [ebp + 0x2e], 0
cmp byte [ebp - 0x5d], 0
jne 0x45aed1
cmp byte [ebp + 0x39], 0
jne 0x45aed1
cmp byte [ebp + 0x2e], 0
je 0x45aecb
cmp byte [ebp + 0x3a], 0
jne 0x45aed1
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
jmp 0x45c3cf
cmp byte [ebp + 0x3a], 0
jne 0x45aeb6
cmp cx, bx
mov eax, dword [ebp - 0x100]
mov dword [ebp + 4], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp + 0x50], eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x14], eax
jne 0x45af9e
xor eax, eax
mov dword [ebp - 0x214], ebx
lea edi, [ebp - 0x210]
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 - 0x30]
push eax
push 0x18
lea eax, [ebp - 0x214]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp dword [ebp - 0xfc], ebx
jg 0x45af4e
jl 0x45af38
cmp dword [ebp - 0x100], ebx
ja 0x45af4e
mov eax, dword [ebp - 0x208]
mov dword [ebp + 4], eax
cdq
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0xe4], ebx
jg 0x45af76
jl 0x45af60
cmp dword [ebp - 0xe8], ebx
ja 0x45af76
mov eax, dword [ebp - 0x204]
mov dword [ebp + 0x50], eax
cdq
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
cmp dword [ebp - 0xec], ebx
jg 0x45af9e
jl 0x45af88
cmp dword [ebp - 0xf0], ebx
ja 0x45af9e
mov eax, dword [ebp - 0x200]
mov dword [ebp - 0x14], eax
cdq
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
cmp dword [ebp - 0xfc], ebx
jg 0x45afc4
jl 0x45afb0
cmp dword [ebp - 0x100], ebx
ja 0x45afc4
mov eax, 0xff
mov dword [ebp + 4], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], ebx
cmp dword [ebp - 0xe4], ebx
jg 0x45afe8
jl 0x45afd6
cmp dword [ebp - 0xe8], ebx
ja 0x45afe8
push 0x3f
pop eax
mov dword [ebp + 0x50], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], ebx
cmp dword [ebp - 0xec], ebx
jg 0x45b00e
jl 0x45affa
cmp dword [ebp - 0xf0], ebx
ja 0x45b00e
mov eax, 0x200
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], ebx
mov edi, dword [ebp - 0x14]
mov eax, edi
cdq
mov ecx, 0x200
idiv ecx
cmp byte [ebp + 0x2e], 0
mov esi, dword [ebp]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 8]
lea ebx, [eax + esi]
lea eax, [ebx + esi + 0x10000]
mov dword [ebp - 0x20], eax
jne 0x45b92e
cmp byte [ebp + 0x3a], 0
jne 0x45b92e
cmp byte [ebp + 0x23], 0
mov byte [ebp + 0x46], 0
jne 0x45b4bf
mov esi, dword [ebp + 0x40]
xor eax, eax
cmp esi, eax
jg 0x45b077
jl 0x45b063
cmp dword [ebp + 0x3c], eax
jae 0x45b077
cmp dword [ebp + 0x34], eax
jl 0x45b4bf
jg 0x45b077
cmp dword [ebp + 0x30], eax
jb 0x45b4bf
cmp dword [ebp + 0x60], eax
jl 0x45b4bf
push 0x100000
lea ecx, [ebp - 0x28]
call fcn.0043d373
mov eax, edi
imul eax, dword [ebp + 0x50]
cdq
mov ecx, 0x200
idiv ecx
mov ebx, eax
imul eax, dword [ebp + 4]
test edi, edi
cdq
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
jle 0x45cea2
mov eax, dword [ebp - 0xa0]
cmp word [eax], 0
jne 0x45b0f8
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x28]
push dword [ebp + 0x6c]
call fcn.0043b21c
add esp, 0xc
test eax, eax
je 0x45ce85
cmp dword [ebp + 0x60], 4
jl 0x45b0f8
cmp byte [ebp + 0x67], 0
jne 0x45b0f8
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp - 0x20]
jge 0x45cea2
xor eax, eax
xor edx, edx
test esi, esi
jl 0x45b197
jg 0x45b10f
cmp dword [ebp + 0x3c], edx
jbe 0x45b197
mov ecx, dword [ebp - 0x80]
and ecx, dword [ebp - 0x7c]
cmp ecx, 0xffffffff
jne 0x45b148
cmp esi, dword [ebp - 0x150]
jl 0x45b143
jg 0x45b12f
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x154]
jb 0x45b143
cmp byte [ebp - 0x41], 0
jne 0x45b143
push dword [ebp - 0x150]
push dword [ebp - 0x154]
jmp 0x45b183
mov eax, ebx
cdq
jmp 0x45b181
cmp byte [ebp - 0x32], 0
jne 0x45b197
mov eax, edi
cdq
mov ecx, eax
add ecx, dword [ebp - 0x80]
mov edi, edx
adc edi, dword [ebp - 0x7c]
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.0048f800
mov ecx, eax
mov eax, dword [ebp + 0x14]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.0048f8b0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
push edx
push eax
push esi
push dword [ebp + 0x3c]
call fcn.0043b2f1
add esp, 0x10
add dword [ebp + 0x3c], eax
adc esi, edx
mov dword [ebp + 0x40], esi
xor ecx, ecx
cmp dword [ebp + 0x34], ecx
jl 0x45b1c3
jg 0x45b1a5
cmp dword [ebp + 0x30], ecx
jbe 0x45b1c3
cmp byte [ebp - 0x55], 0
jne 0x45b1c3
sub dword [ebp + 0x30], eax
sbb dword [ebp + 0x34], edx
cmp dword [ebp + 0x34], ecx
jg 0x45b1c3
jl 0x45b1bd
cmp dword [ebp + 0x30], ecx
jae 0x45b1c3
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], ecx
cmp esi, ecx
jl 0x45b1d5
jg 0x45b1ce
cmp dword [ebp + 0x3c], ecx
jbe 0x45b1d5
mov edi, dword [ebp + 0x3c]
mov ebx, esi
jmp 0x45b1d9
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x34], ecx
jl 0x45b276
jg 0x45b1ed
cmp dword [ebp + 0x30], ecx
jbe 0x45b276
mov eax, dword [ebp - 0x54]
and eax, dword [ebp - 0x50]
cmp eax, 0xffffffff
jne 0x45b213
push dword [ebp - 0x150]
add edi, dword [ebp + 0x30]
push dword [ebp - 0x154]
adc ebx, dword [ebp + 0x34]
push ebx
push edi
call fcn.00491e30
jmp 0x45b270
cmp byte [ebp - 0x32], 0
jne 0x45b276
mov eax, dword [ebp - 0x14]
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 - 0x120], edx
call fcn.0048f800
push dword [ebp - 0x120]
push esi
push edx
push eax
call fcn.0048f8b0
push 0
push 0x200
push edx
push eax
call fcn.0048f800
add edi, dword [ebp + 0x30]
push edx
adc ebx, dword [ebp + 0x34]
push eax
push ebx
push edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
call fcn.00491e30
mov esi, dword [ebp + 0x40]
sub dword [ebp + 0x30], eax
sbb dword [ebp + 0x34], edx
cmp dword [ebp - 0xf4], 0
mov byte [ebp + 0x46], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x2e], 0
jl 0x45b3a6
jg 0x45b29e
cmp dword [ebp - 0xf8], 0
jbe 0x45b3a6
mov ecx, dword [ebp + 0x30]
sub ecx, dword [ebp - 0xc0]
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x34]
sbb edi, dword [ebp - 0xbc]
add ecx, dword [ebp + 0x3c]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.0048f800
and dword [ebp - 0x18c], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 4]
lea edi, [ebp - 0x188]
push dword [ebp + 0x50]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x17c]
lea eax, [ebp + 0x2e]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x46]
push eax
push dword [ebp - 0x178]
mov dword [ebp - 0xf8], ebx
push edi
mov dword [ebp - 0xf4], edx
call fcn.0043b31b
mov al, byte [ebp + 0x3b]
add esp, 0x20
push 1
push dword [ebp + 4]
mov byte [ebp - 0x18b], al
mov al, byte [ebp + 0x2e]
push dword [ebp + 0x50]
mov byte [ebp - 0x18a], al
mov al, byte [ebp + 0x46]
mov byte [ebp - 0x189], al
lea eax, [ebp + 0x2e]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x46]
push eax
push 0
push 2
push dword [ebp - 0x178]
mov byte [ebp - 0x18c], 0
push edi
call fcn.0048f8b0
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0043b31b
mov al, byte [ebp + 0x3b]
mov byte [ebp - 0x187], al
mov al, byte [ebp + 0x2e]
mov byte [ebp - 0x186], al
mov al, byte [ebp + 0x46]
push 1
mov byte [ebp - 0x185], al
lea eax, [ebp - 0x18c]
push eax
push dword [ebp - 0x68]
mov byte [ebp - 0x188], 5
push dword [ebp - 0x6c]
mov dword [ebp - 0x184], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x180], ebx
call fcn.004420ab
add esp, 0x34
mov eax, dword [ebp + 0x14]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.0048f800
test esi, esi
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], edx
jl 0x45b3f5
jg 0x45b3da
xor eax, eax
cmp dword [ebp + 0x3c], eax
jb 0x45b3f7
push ebx
push edi
push esi
push dword [ebp + 0x3c]
call fcn.0048f800
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
xor eax, eax
jmp 0x45b403
xor eax, eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
cmp dword [ebp + 0x34], eax
jl 0x45b424
jg 0x45b40f
cmp dword [ebp + 0x30], eax
jb 0x45b424
push ebx
push edi
push dword [ebp + 0x34]
push dword [ebp + 0x30]
call fcn.0048f800
mov dword [ebp - 0xd4], edx
jmp 0x45b42a
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd8], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xb8]
setge al
push eax
push dword [ebp + 4]
lea eax, [ebp - 0x60]
push dword [ebp + 0x50]
push eax
lea eax, [ebp - 0x61]
push eax
lea eax, [ebp + 0x28]
push eax
push ebx
push edi
call fcn.0043b31b
add esp, 0x20
test esi, esi
jl 0x45b486
jg 0x45b46e
cmp dword [ebp + 0x3c], 0
jbe 0x45b486
sub edi, dword [ebp - 0x1e0]
sbb ebx, dword [ebp - 0x1dc]
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], ebx
mov al, byte [ebp - 0x41]
mov byte [ebp + 0x46], al
movsx eax, al
push eax
push dword [ebp + 4]
lea eax, [ebp + 0x1b]
push dword [ebp + 0x50]
push eax
lea eax, [ebp - 0x31]
push eax
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0xd8]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.0043b31b
add esp, 0x20
lea ecx, [ebp - 0x28]
call fcn.00437960
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x24]
lea esi, [eax + 0x200]
push 0x200
push esi
shl edi, 4
push eax
mov dword [ebp - 8], esi
lea ebx, [edi + esi]
call fcn.004125f9
add esp, 0xc
cmp dword [ebp - 0xf4], 0
jl 0x45b526
jg 0x45b4f7
cmp dword [ebp - 0xf8], 0
jb 0x45b526
cmp dword [ebp + 0x24], 0
jle 0x45b50f
push edi
push 0
add esi, 0x1be
push esi
call fcn.0048f7a0
add esp, 0xc
push 0x30
pop eax
sub eax, edi
push eax
lea eax, [ebx + 0x1ce]
push 0
push eax
call fcn.0048f7a0
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [ebx + 0x1c2]
jne 0x45b548
cmp byte [ebp + 0x2c], 2
jge 0x45b548
cmp al, 5
je 0x45ceaa
cmp al, 0xf
je 0x45ceaa
cmp byte [ebp + 0x67], 0
mov esi, dword [ebx + 0x1c6]
mov edi, dword [ebx + 0x1ca]
jne 0x45b5be
test al, al
je 0x45b5be
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
je 0x45b5c0
cmp byte [ebp + 0x2c], 2
jge 0x45b5c0
cmp byte [ebp - 0x41], cl
jne 0x45b5c0
cmp dword [ebp + 0x40], ecx
jl 0x45b596
jg 0x45b57c
cmp dword [ebp + 0x3c], ecx
jb 0x45b596
xor eax, eax
cmp dword [ebp - 0xb8], esi
jne 0x45ceaa
cmp dword [ebp - 0xb4], eax
jne 0x45ceaa
cmp dword [ebp + 0x34], ecx
jl 0x45b5c0
jg 0x45b5a2
cmp dword [ebp + 0x30], ecx
jb 0x45b5c0
xor eax, eax
cmp dword [ebp - 0xd8], edi
jne 0x45b5b4
cmp dword [ebp - 0xd4], eax
je 0x45b5c0
cmp edi, ecx
jne 0x45ceaa
jmp 0x45b5c0
xor ecx, ecx
cmp byte [ebp + 0x23], 0
je 0x45b5e2
xor edi, edi
xor esi, esi
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp + 0x10]
cmp eax, ecx
jl 0x45b5ef
mov byte [ebx + 0x1c2], al
mov eax, dword [ebp - 0x88]
cmp ax, cx
jl 0x45b600
mov byte [ebx + 0x1be], al
cmp dword [ebp + 0x40], ecx
jg 0x45b62c
jl 0x45b60c
cmp dword [ebp + 0x3c], ecx
jae 0x45b62c
cmp dword [ebp + 0x34], ecx
jl 0x45b6a5
jg 0x45b620
cmp dword [ebp + 0x30], ecx
jb 0x45b6a5
mov eax, dword [ebp - 0xd8]
lea eax, [esi + eax - 1]
jmp 0x45b642
cmp dword [ebp + 0x34], ecx
jg 0x45b666
jl 0x45b638
cmp dword [ebp + 0x30], ecx
jae 0x45b666
mov eax, dword [ebp - 0xb8]
lea eax, [edi + eax - 1]
movsx ecx, byte [ebp + 0x46]
push ecx
push dword [ebp + 4]
lea ecx, [ebp + 0x1b]
push dword [ebp + 0x50]
push ecx
lea ecx, [ebp - 0x31]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
push 0
push eax
call fcn.0043b31b
add esp, 0x20
xor ecx, ecx
cmp dword [ebp + 0x40], ecx
jl 0x45b699
jg 0x45b672
cmp dword [ebp + 0x3c], ecx
jb 0x45b699
mov al, byte [ebp - 0x61]
mov byte [ebx + 0x1bf], al
mov al, byte [ebp - 0x60]
mov byte [ebx + 0x1c0], al
mov al, byte [ebp + 0x28]
mov byte [ebx + 0x1c1], al
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x1c6], eax
cmp dword [ebp + 0x34], ecx
jg 0x45b6b1
jl 0x45b6a5
cmp dword [ebp + 0x30], ecx
jae 0x45b6b1
cmp dword [ebp + 0x40], ecx
jl 0x45b6cc
jg 0x45b6b1
cmp dword [ebp + 0x3c], ecx
jb 0x45b6cc
mov al, byte [ebp - 0x31]
mov byte [ebx + 0x1c3], al
mov al, byte [ebp + 0x1b]
mov byte [ebx + 0x1c4], al
mov al, byte [ebp - 0x5c]
mov byte [ebx + 0x1c5], al
cmp dword [ebp + 0x34], ecx
jl 0x45b6e4
jg 0x45b6d8
cmp dword [ebp + 0x30], ecx
jb 0x45b6e4
mov eax, dword [ebp - 0xd8]
mov dword [ebx + 0x1ca], eax
cmp dword [ebp + 0x10], ecx
jge 0x45b70a
cmp word [ebp - 0x88], cx
jge 0x45b70a
cmp dword [ebp + 0x40], ecx
jg 0x45b70a
jl 0x45b6fe
cmp dword [ebp + 0x3c], ecx
jae 0x45b70a
cmp dword [ebp + 0x34], ecx
jl 0x45b71d
jg 0x45b70a
cmp dword [ebp + 0x30], ecx
jb 0x45b71d
mov eax, dword [ebp - 8]
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
jmp 0x45b720
mov eax, dword [ebp - 8]
cmp word [ebp - 0x88], cx
jge 0x45b754
cmp dword [ebp + 0x10], ecx
jge 0x45b754
cmp dword [ebp + 0x40], ecx
jg 0x45b754
jl 0x45b73a
cmp dword [ebp + 0x3c], ecx
jae 0x45b754
cmp dword [ebp + 0x34], ecx
jg 0x45b754
jl 0x45b746
cmp dword [ebp + 0x30], ecx
jae 0x45b754
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
xor esi, esi
push esi
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
cmp eax, dword [ebp - 0x108]
jne 0x45ceec
cmp edx, dword [ebp - 0x104]
jne 0x45ceec
mov eax, dword [ebp - 0x134]
or eax, dword [ebp - 0x130]
mov dword [ebp + 0x50], 1
jne 0x45b7a4
push dword [ebp - 8]
call fcn.0043b3ad
pop ecx
mov edi, 0x200
push edi
push dword [ebp - 8]
push dword [ebp + 0x1c]
call fcn.0043d74f
add esp, 0xc
test eax, eax
jne 0x45b7da
push esi
lea eax, [ebp - 0x30]
push eax
push edi
push dword [ebp - 8]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x50], eax
call fcn.0043b395
pop ecx
cmp dword [ebp + 0x40], esi
jl 0x45b8cf
jg 0x45b7ee
cmp dword [ebp + 0x3c], edi
jb 0x45b8cf
cmp dword [ebp + 0x34], 0
jl 0x45b8cf
jg 0x45b803
cmp dword [ebp + 0x30], edi
jbe 0x45b8cf
cmp byte [ebp - 0x6e], 0
je 0x45b8cf
mov esi, 0x200
push esi
push 0
push dword [ebp - 8]
call fcn.0048f7a0
add esp, 0xc
push 0
push esi
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
call fcn.0048f8b0
mov edi, eax
mov ebx, edx
mov dword [ebp - 0x1bc], edi
add edi, dword [ebp - 0x78]
mov dword [ebp - 0x1b8], ebx
adc ebx, dword [ebp - 0x74]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
cmp eax, dword [ebp - 0x1bc]
jne 0x45b8cb
cmp edx, dword [ebp - 0x1b8]
jne 0x45b8cb
push 0
lea eax, [ebp - 0x30]
push eax
push esi
push dword [ebp + 0x1c]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
mov dword [ebp + 0x50], eax
je 0x45b8cb
cmp dword [ebp - 0x30], esi
jne 0x45b8cb
push esi
push dword [ebp - 8]
push dword [ebp + 0x1c]
call fcn.0043d74f
add esp, 0xc
test eax, eax
jne 0x45b8cf
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
cmp eax, dword [ebp - 0x1bc]
jne 0x45b8cb
cmp edx, dword [ebp - 0x1b8]
jne 0x45b8cb
push 0
lea eax, [ebp - 0x30]
push eax
push esi
push dword [ebp - 8]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov dword [ebp + 0x50], eax
jmp 0x45b8cf
and dword [ebp + 0x50], 0
xor eax, eax
cmp dword [ebp + 0x50], eax
sete al
cmp byte [ebp + 0x57], 0
mov esi, eax
mov dword [ebp - 8], esi
jne 0x45c235
cmp byte [ebp + 0x5f], 0
jne 0x45c235
cmp byte [ebp + 0x38], 0
jne 0x45c235
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
test eax, eax
jmp 0x45c3ad
cmp byte [ebp + 0x23], 0
je 0x45b938
mov byte [ebp - 0x15], 0
cmp byte [ebp + 0x46], 0
je 0x45b952
cmp byte [ebp + 0x39], 0
jne 0x45b952
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x14], eax
jmp 0x45b959
mov dword [ebp + 0x14], 0x80
cmp byte [ebp - 0x6d], 0
mov eax, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edi
je 0x45b98d
add eax, dword [ebp + 0x3c]
push 0
adc edi, dword [ebp + 0x40]
sub eax, 1
pop edx
sbb edi, edx
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edi
jmp 0x45b98f
xor edx, edx
cmp byte [ebp + 0x39], 0
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xac], edx
je 0x45ba2e
test byte [ebp - 0x42], 0x10
je 0x45b9d4
mov eax, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov dword [ebp - 0x114], eax
sub eax, 1
mov dword [ebp - 0x110], edi
sbb edi, edx
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edi
cmp dword [ebp + 0x40], edx
jg 0x45b9eb
jl 0x45b9e1
cmp dword [ebp + 0x3c], 1
jae 0x45b9eb
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x40], edx
sub eax, 1
mov ecx, edi
sbb ecx, edx
cmp ecx, edx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], ecx
jg 0x45ba26
jl 0x45ba09
cmp eax, 1
jae 0x45ba26
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x110]
sub eax, 2
sbb ecx, edx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], ecx
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
jmp 0x45ba30
xor eax, eax
push dword [ebp - 0x74]
lea ecx, [ebp - 0xb0]
push dword [ebp - 0x78]
push ecx
push edx
push eax
push esi
push dword [ebp + 0x14]
lea eax, [ebp + 0x6c]
push dword [ebp + 8]
push eax
call fcn.00441a14
add esp, 0x24
cmp byte [ebp + 0x46], 0
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], edx
jne 0x45ba79
or eax, edx
jne 0x45ba79
and dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x60], eax
mov dword [ebp - 0x14], 1
jae 0x45baac
cmp dword [ebp + 0xc], eax
jge 0x45baac
mov ecx, dword [ebp + 0x60]
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x4a9d98
push ecx
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x45bab0
and dword [ebp - 0x14], 0
cmp dword [ebp - 0xac], 0
jl 0x45ceaa
jg 0x45bacc
cmp dword [ebp - 0xb0], 0x20
jb 0x45ceaa
cmp byte [ebp + 0x39], 0
je 0x45bc97
mov ecx, dword [ebp + 0x14]
cmp dword [ebp + 0x60], ecx
jae 0x45ceaa
lea eax, [ebx + esi]
mov dword [ebp - 0x14], eax
mov eax, ecx
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x45bb24
mov dword [ebp + 0x28], eax
push 0x1b3
push 0
push dword [ebp - 0x14]
call fcn.0048f7a0
mov eax, dword [ebp - 0x14]
push 0x4a
add eax, 0x1b4
push 0
push eax
call fcn.0048f7a0
add dword [ebp - 0x14], esi
add esp, 0x18
dec dword [ebp + 0x28]
jne 0x45baf8
push 0x5c
push 0
push ebx
call fcn.0048f7a0
push 8
push str.EFI_PART
push ebx
call fcn.004125f9
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x40]
mov edx, dword [ebp - 0xac]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebx + 0x24], edx
mov edx, dword [ebp + 0x40]
adc edx, 0
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0xac]
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 0x45bba5
push 0x10
push 0x4acfd4
push eax
call fcn.004125f9
add esp, 0xc
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
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.004125f9
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 + 8]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0048f7a0
add esp, 0x18
test edi, edi
jg 0x45bc1a
jl 0x45bc0c
cmp dword [ebp - 0xcc], 1
jae 0x45bc1a
or dword [ebp - 0xcc], 0xffffffff
or dword [ebp - 0xc8], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 8]
push 1
push dword [ebp + 4]
shl eax, 4
push dword [ebp + 0x50]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x40]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x3c]
call fcn.0043b31b
push 1
push dword [ebp + 4]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x50]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
call fcn.0043b31b
mov eax, dword [ebp + 0x3c]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0xcc]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x45bfc1
cmp byte [ebp - 0x39], 0
je 0x45bca7
cmp dword [ebp + 0x60], 0
jl 0x45bfc1
cmp byte [ebp + 0x67], 0
je 0x45bd02
or dword [ebp + 0x60], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x14], edi
mov byte [ebp - 0x15], 0
jbe 0x45bd02
lea eax, [ebx + esi]
mov dword [ebp - 0x5c], eax
push 0x10
push 0x4a9d98
push dword [ebp - 0x5c]
call fcn.00437a2b
add esp, 0xc
test eax, eax
je 0x45bce7
add dword [ebp - 0x5c], 0x80
inc edi
cmp edi, dword [ebp + 0x14]
jb 0x45bcc2
jmp 0x45bd02
mov dword [ebp + 0x60], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.0048f7a0
add esp, 0xc
mov eax, dword [ebp + 0x14]
dec dword [ebp + 0xc]
cmp dword [ebp + 0x60], eax
jae 0x45ceaa
cmp dword [ebp + 0xc], eax
jge 0x45ceaa
cmp byte [ebp - 0x15], 0
je 0x45be2c
xor ecx, ecx
cmp byte [ebp + 0x46], cl
je 0x45bd7a
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x14]
jae 0x45bd7a
mov edx, dword [eax]
cmp edx, dword [ebp + 0x3c]
jne 0x45bd43
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x40]
je 0x45bd4b
inc ecx
add eax, 0x80
jmp 0x45bd2f
mov eax, dword [ebp]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4a9d98
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 0x45bd77
push 0x80
push 0
push eax
call fcn.0048f7a0
add esp, 0xc
mov esi, dword [ebp]
mov eax, dword [ebp + 0x60]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x4a9d98
push eax
mov dword [ebp - 0xd0], eax
call fcn.00437a2b
add esp, 0xc
test eax, eax
je 0x45be13
mov esi, dword [ebp + 0x60]
inc esi
cmp esi, dword [ebp + 0x14]
mov dword [ebp + 0x1c], esi
jae 0x45ceaa
shl esi, 7
add esi, edi
push 0x10
push 0x4a9d98
push esi
call fcn.00437a2b
add esp, 0xc
test eax, eax
je 0x45bddb
inc dword [ebp + 0x1c]
mov eax, dword [ebp + 0x1c]
add esi, 0x80
cmp eax, dword [ebp + 0x14]
jb 0x45bdb4
jmp 0x45be04
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp + 0x60]
jle 0x45be04
mov edi, eax
mov eax, dword [ebp]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x1c]
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 0x45bdf5
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x1c], eax
jae 0x45ceaa
mov esi, dword [ebp]
push 0x80
push 0
push dword [ebp - 0xd0]
call fcn.0048f7a0
add esp, 0xc
and dword [ebp - 0x14], 0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp eax, ecx
jge 0x45bf52
cmp dword [ebp - 0x14], ecx
jne 0x45be65
xor eax, eax
inc eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x164], eax
cmp dword [ebp - 0x158], ecx
jle 0x45be89
mov edi, dword [ebp + 0x60]
mov eax, dword [ebp]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x19c]
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]
xor ecx, ecx
cmp dword [ebp - 0x14c], ecx
jle 0x45beaf
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp]
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]
xor ecx, ecx
cmp dword [ebp - 0x160], ecx
jle 0x45bece
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x3c]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x20], edi
mov edi, dword [ebp + 0x40]
mov dword [edx + eax + 0x24], edi
cmp dword [ebp - 0x140], ecx
jle 0x45bef3
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp - 0xcc]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0xc8]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0x15c], ecx
jle 0x45bf17
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x13c]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0x138]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0x164], ecx
jle 0x45bf9b
mov eax, dword [ebp - 0x48]
cmp word [eax], 0
je 0x45bf9b
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.0048f7a0
add esp, 0xc
push 0x24
push dword [ebp - 0x48]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x45bf9b
cmp eax, dword [ebp + 0x60]
je 0x45bf9b
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x32c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0xc]
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 + 0xc]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x32c]
rep movsd dword es:[edi], dword [esi]
jge 0x45bf9b
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0x23], 0
je 0x45bfbe
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.0048f7a0
add esp, 0xc
mov esi, dword [ebp]
xor eax, eax
cmp byte [ebp - 0x39], al
mov dword [ebp - 0x14], eax
je 0x45c0bc
cmp byte [ebp + 0x39], al
jne 0x45c0bc
cmp dword [ebp + 0x14], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x50], eax
jle 0x45c0bc
lea eax, [ebx + esi]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 4], eax
mov edi, 0x80
push 0x10
push 0x4a9d98
push dword [ebp + 0x1c]
call fcn.00437a2b
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x45c01d
mov ecx, dword [ebp + 0x50]
cmp ecx, dword [ebp + 0x24]
jne 0x45c01d
and dword [ebp + 0x28], 0
jmp 0x45c024
mov dword [ebp + 0x28], 1
and dword [ebp - 0x5c], 0
test al, al
jne 0x45c068
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x24]
je 0x45c062
mov esi, dword [ebp + 0x1c]
push 0x10
push esi
push esi
call fcn.0043d74f
mov edi, dword [ebp + 4]
add esp, 0xc
inc dword [ebp + 0x24]
add dword [ebp + 4], 0x80
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp]
mov dword [ebp - 0x5c], eax
mov edi, 0x80
jmp 0x45c068
inc dword [ebp + 0x24]
add dword [ebp + 4], edi
cmp dword [ebp + 0x28], 0
je 0x45c09d
mov eax, dword [ebp + 0x1c]
lea ecx, [eax + 0x80]
jmp 0x45c082
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x45c088
cmp eax, ecx
jb 0x45c079
jmp 0x45c08f
mov dword [ebp - 0x5c], 1
push edi
push 0
push dword [ebp + 0x1c]
call fcn.0048f7a0
add esp, 0xc
cmp dword [ebp - 0x5c], 0
je 0x45c0aa
mov eax, dword [ebp + 0x50]
inc eax
mov dword [ebp - 0x14], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
add dword [ebp + 0x1c], edi
cmp eax, dword [ebp + 0x14]
jl 0x45bff5
push dword [ebp + 8]
call fcn.0043b3ad
lea eax, [ebx - 0x174]
push eax
call fcn.0043b3ad
mov eax, dword [ebp + 0x60]
cmp dword [ebp - 0x14], eax
pop ecx
pop ecx
jg 0x45c0de
inc eax
mov dword [ebp - 0x14], eax
cmp byte [ebp + 0x39], 0
mov eax, dword [ebp + 0x14]
je 0x45c0ea
mov dword [ebp - 0x14], eax
xor edi, edi
push edi
shl eax, 7
push edi
push eax
lea eax, [ebx + esi]
push eax
call fcn.004830b2
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 + 0x28], eax
ja 0x45cf27
xor eax, eax
push eax
push eax
push dword [ebp + 0x28]
push ebx
call fcn.004830b2
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 + 0x28]
push edi
call fcn.004830b2
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x14]
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 + 0x39], 0
je 0x45c17e
push 0
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
push esi
push dword [ebp + 8]
lea ecx, [ebp + 0x6c]
call fcn.004378c3
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
call fcn.0048f8b0
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
lea eax, [edi + esi]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.004378c3
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xac]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.0048f8b0
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x6c]
call fcn.004378c3
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.0048f8b0
add eax, dword [ebp - 0x78]
adc edx, dword [ebp - 0x74]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
push esi
push dword [ebp - 0x20]
lea ecx, [ebp + 0x6c]
call fcn.004378c3
mov al, byte [ebp + 0x5f]
or al, byte [ebp + 0x57]
or al, byte [ebp + 0x38]
je 0x45cf58
and dword [ebp + 0x50], 0
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
mov bl, byte [ebp + 0x2f]
xor edi, edi
cmp dword [ebp - 0x38], edi
jl 0x45c2d9
cmp bl, 0x20
je 0x45c265
cmp bl, 0x10
jne 0x45c26b
cmp dword [ebp - 0x24], 0xb
je 0x45c28f
test byte [ebp + 0x57], 0x20
jne 0x45c28f
cmp byte [ebp + 0x57], 0
je 0x45c27d
cmp dword [ebp - 0x24], 0xb
je 0x45c28f
test byte [ebp + 0x5f], 0x20
jne 0x45c28f
cmp byte [ebp + 0x5f], 0
je 0x45c2d9
cmp dword [ebp - 0x24], 0xb
jne 0x45c2d9
test byte [0x4be2e0], 0x20
jne 0x45c2aa
test byte [ebp + 0x68], 0x20
jne 0x45c2aa
push 1
push dword [ebp - 0x38]
call fcn.00449b57
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4be2e0], 0x10
jne 0x45c2d5
test byte [ebp + 0x68], 0x11
jne 0x45c2d5
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x38]
call fcn.00404c9d
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x38], 0
jne 0x45c2ef
cmp bl, 1
je 0x45c2ef
cmp bl, 0x20
je 0x45c2ef
cmp byte [ebp + 0x57], 0
je 0x45c333
push dword [ebp + 0x6c]
call fcn.0043b395
pop ecx
push edi
lea eax, [ebp - 0x168]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x168], edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45c320
xor eax, eax
jmp 0x45c326
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp bl, 1
je 0x45c330
cmp bl, 0x20
jne 0x45c333
mov dword [ebp - 8], eax
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
xor eax, eax
test byte [ebp + 0x5f], 0x20
jne 0x45c359
cmp byte [ebp + 0x5f], al
je 0x45c34e
cmp dword [ebp - 0x24], 0xb
je 0x45c359
cmp bl, 0x10
jne 0x45c37d
cmp dword [ebp - 0x24], 0xc
je 0x45c37d
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
push 0x4a4c34
push 1
push edi
push dword [ebp - 0xa4]
call fcn.00441625
add esp, 0x10
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp byte [ebp + 0x47], 0
je 0x45c38c
cmp dword [ebp + 0x50], edi
jne 0x45a2a9
cmp bl, 0x10
mov esi, eax
je 0x45c396
mov esi, dword [ebp - 8]
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, edi
je 0x45d0c2
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45d0c2
cmp dword [ebp - 0x10], ebx
jge 0x45c3f3
mov eax, dword [ebp - 0xa0]
cmp word [eax], bx
jne 0x45c3f3
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45ced9
mov edi, dword [ebp - 0x98]
mov dword [ebp + 0xc], 0x1b8
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x16c], ebx
cmp word [edi], bx
je 0x45c53c
push edi
push 0x4acfd0
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45c53c
push edi
push 0x4a8040
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45c53c
push edi
push 0x4acfcc
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45c469
mov dword [ebp - 0x24], 0x4bc340
mov dword [ebp + 0xc], 0x190
jmp 0x45c55c
push edi
push 0x4acfc8
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45c48d
mov dword [ebp - 0x24], 0x4bc4d0
mov dword [ebp + 0xc], 0x180
jmp 0x45c55c
mov dword [ebp + 0xc], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
jne 0x45c4c4
lea eax, [ebp - 0x6c]
push eax
inc edi
lea eax, [ebp - 0x98]
inc edi
push eax
mov dword [ebp - 0x98], edi
call fcn.00441c9a
mov edi, dword [ebp - 0x98]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45c4c4
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45c502
push edi
lea ecx, [ebp + 0x28]
call fcn.004457e4
push ebx
lea eax, [ebp - 0x174]
push eax
push str.EXEDATA
push dword [ebp + 0x28]
push ebx
call fcn.00413072
add esp, 0x14
lea ecx, [ebp + 0x28]
mov dword [ebp - 0x24], eax
call fcn.00437960
mov eax, dword [ebp - 0x170]
mov dword [ebp + 0xc], eax
jmp 0x45c519
lea eax, [ebp + 0xc]
push eax
push ebx
push edi
call fcn.0040e560
add esp, 0xc
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x68], ebx
jl 0x45c54a
jg 0x45c525
cmp dword [ebp - 0x6c], ebx
jb 0x45c54a
cmp ebx, dword [ebp - 0x68]
jl 0x45c54a
jg 0x45c534
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x6c]
jbe 0x45c54a
mov eax, dword [ebp - 0x6c]
mov dword [ebp + 0xc], eax
jmp 0x45c54a
mov dword [ebp - 0x24], 0x4bc650
mov dword [ebp + 0xc], 0x1b8
cmp dword [ebp + 0xc], ebx
jbe 0x45c6fa
cmp dword [ebp - 0x24], ebx
je 0x45c6fa
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.0040511c
cmp dword [ebp + 0x6c], ebx
je 0x45c6fa
mov esi, dword [ebp + 0xc]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 0x48]
call fcn.0043d373
mov edi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x90]
add edi, 0x200
and edi, 0xfffffe00
lea eax, [edi + esi]
mov dword [ebp + 0x1c], eax
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0x8c]
je 0x45c5db
push ebx
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
cmp eax, dword [ebp - 0x78]
jne 0x45c6d3
cmp edx, dword [ebp - 0x74]
jne 0x45c6d3
push ebx
lea eax, [ebp - 0x30]
push eax
push esi
push dword [ebp + 0x1c]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45c6d3
push esi
push dword [ebp + 0x1c]
push edi
call fcn.004125f9
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, 0x1b8
jle 0x45c623
mov eax, 0x1b8
push eax
push dword [ebp - 0x24]
push dword [ebp + 0x1c]
call fcn.004125f9
mov eax, dword [ebp + 0x1c]
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, 0x200
jbe 0x45c66d
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x24]
add eax, 0x200
push eax
mov eax, dword [ebp + 0x1c]
add eax, 0x200
push eax
call fcn.004125f9
add esp, 0xc
push esi
push dword [ebp + 0x1c]
push edi
call fcn.0043d74f
add esp, 0xc
test eax, eax
jne 0x45c6bb
push ebx
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x10
cmp eax, dword [ebp - 0x78]
jne 0x45c6d3
cmp edx, dword [ebp - 0x74]
jne 0x45c6d3
push ebx
lea eax, [ebp - 0x30]
push eax
push esi
push dword [ebp + 0x1c]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.0043b395
cmp esi, ebx
pop ecx
je 0x45c6d3
lea ecx, [ebp - 0x48]
call fcn.00437960
lea ecx, [ebp - 0x174]
call fcn.00437960
jmp 0x45d098
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x45c6e2
xor esi, esi
inc esi
lea ecx, [ebp - 0x48]
call fcn.00437960
lea ecx, [ebp - 0x174]
call fcn.00437960
jmp 0x45cdd6
lea ecx, [ebp - 0x174]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45cf1b
cmp dword [ebp + 0x60], ebx
jle 0x45c3cf
cmp dword [ebp - 0x10], ebx
jge 0x45c746
mov eax, dword [ebp - 0xa0]
cmp word [eax], bx
je 0x45c3cf
xor eax, eax
cmp dword [ebp - 0x10], ebx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], eax
mov dword [ebp + 0x28], esi
jge 0x45c765
xor al, al
jne 0x45c794
jmp 0x45c3cf
push dword [ebp - 0x9c]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x13c]
push eax
push dword [ebp - 0x40]
lea eax, [ebp - 4]
push dword [ebp + 0x60]
push dword [ebp - 0x10]
push eax
call fcn.004585df
add esp, 0x1c
cmp dword [ebp + 0x28], ebx
jle 0x45c705
mov eax, dword [ebp - 0x4c]
mov dword [ebp + 0x10], edi
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], ebx
mov dword [ebp - 0x120], ebx
cmp word [eax], bx
je 0x45c905
push eax
push 0x4acfd0
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45c905
push dword [ebp - 0x4c]
push 0x4a8040
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45c905
mov edi, dword [ebp - 0x4c]
push edi
push 0x4acfc8
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45c7fc
push 8
jmp 0x45c907
push edi
push str.nt6fat
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45c901
push edi
push str.winfat
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45c901
push edi
push 0x4acfcc
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45c83e
push 6
jmp 0x45c907
push edi
push str.nt5fat
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45c856
push 5
jmp 0x45c907
mov dword [ebp + 0x10], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
jne 0x45c884
lea eax, [ebp - 0x6c]
push eax
inc edi
lea eax, [ebp - 0x4c]
inc edi
push eax
mov dword [ebp - 0x4c], edi
call fcn.00441c9a
mov edi, dword [ebp - 0x4c]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45c884
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45c8c2
push edi
lea ecx, [ebp + 0x28]
call fcn.004457e4
push ebx
lea eax, [ebp - 0x128]
push eax
push str.EXEDATA
push dword [ebp + 0x28]
push ebx
call fcn.00413072
add esp, 0x14
lea ecx, [ebp + 0x28]
mov dword [ebp + 0x24], eax
call fcn.00437960
mov eax, dword [ebp - 0x124]
mov dword [ebp + 0x10], eax
jmp 0x45c8d9
lea eax, [ebp + 0x10]
push eax
push ebx
push edi
call fcn.0040e560
add esp, 0xc
mov dword [ebp + 0x24], eax
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x68], ebx
jl 0x45c8fa
jg 0x45c8e5
cmp dword [ebp - 0x6c], ebx
jb 0x45c8fa
cmp ebx, dword [ebp - 0x68]
jl 0x45c8fa
jg 0x45c8f4
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x6c]
jbe 0x45c8fa
mov eax, dword [ebp - 0x6c]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x24], ebx
jne 0x45c930
jmp 0x45c95d
push 7
jmp 0x45c907
push 9
pop eax
push ebx
lea ecx, [ebp - 0x128]
push ecx
push str.INDATA
push eax
push ebx
call fcn.00413072
add esp, 0x14
cmp dword [ebp + 0x10], ebx
mov dword [ebp + 0x24], eax
je 0x45c95d
mov eax, dword [ebp - 0x124]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], ebx
jbe 0x45c95d
cmp dword [ebp + 0x24], ebx
je 0x45c95d
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.0040511c
cmp dword [ebp + 0x6c], ebx
jne 0x45c968
lea ecx, [ebp - 0x128]
jmp 0x45c700
push 0
push 0x200
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.0048f8b0
mov ebx, eax
add ebx, dword [ebp - 0x13c]
mov esi, edx
adc esi, dword [ebp - 0x138]
push 0
push esi
push ebx
push dword [ebp + 0x6c]
mov dword [ebp - 0x1a4], esi
call fcn.00438aec
add esp, 0x10
cmp eax, ebx
jne 0x45c9ad
cmp edx, esi
je 0x45c9dc
lea ecx, [ebp - 0x128]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
test eax, eax
jmp 0x45cf1b
mov esi, dword [ebp + 0x10]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 0x28]
call fcn.0043d373
mov eax, dword [ebp - 0x28]
add eax, 0x200
and eax, edi
push 0
lea edi, [eax + esi]
mov dword [ebp + 0x28], eax
lea eax, [ebp - 0x30]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45ca4b
push esi
push edi
push dword [ebp + 0x28]
call fcn.004125f9
push 0
push dword [ebp - 0x1a4]
push ebx
push dword [ebp + 0x6c]
call fcn.00438aec
add esp, 0x1c
cmp eax, ebx
jne 0x45ca4b
cmp edx, dword [ebp - 0x1a4]
je 0x45ca58
lea ecx, [ebp - 0x28]
call fcn.00437960
jmp 0x45c9ad
mov ebx, dword [ebp + 0x10]
push 3
push dword [ebp + 0x24]
push edi
call fcn.004125f9
mov eax, 0x1fe
add esp, 0xc
cmp ebx, eax
jle 0x45ca74
mov ebx, eax
add ebx, 0xffffffe2
push ebx
mov ebx, dword [ebp + 0x24]
lea eax, [ebx + 0x1e]
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.004125f9
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, 0x200
jbe 0x45cabf
add eax, 0xfffffe00
push eax
add ebx, 0x200
lea eax, [edi + 0x200]
push ebx
push eax
call fcn.004125f9
add esp, 0xc
push esi
push edi
push dword [ebp + 0x28]
xor ebx, ebx
inc ebx
call fcn.0043d74f
add esp, 0xc
test eax, eax
jne 0x45caee
push eax
lea eax, [ebp - 0x30]
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.0043b395
pop ecx
xor eax, eax
test ebx, ebx
sete al
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.00437960
lea ecx, [ebp - 0x128]
call fcn.00437960
jmp 0x45b90a
push 0x103c
lea ecx, [ebp - 4]
call fcn.0043d4c2
mov ecx, dword [ebp - 0x94]
mov esi, dword [ebp - 4]
mov ax, word [ecx]
add esi, 0x2000
cmp ax, bx
mov edi, 0x4a4c34
je 0x45cb7b
cmp word [ecx + 2], 0x3a
jne 0x45cb7b
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 0x45cb6f
cmp dword [ebp - 0x84], 0x10
jne 0x45cbc6
mov edi, 0x4a4c14
cmp eax, 5
jne 0x45cbc6
mov edi, 0x4a4c24
jmp 0x45cbc6
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jl 0x45cbc6
cmp dword [ebp - 0x84], 8
jne 0x45cb9f
push eax
push str..CDROM_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov edi, 0x4a4c24
jmp 0x45cbc3
cmp dword [ebp - 0x84], 0x10
jne 0x45cbb6
and eax, 0xfff
mov esi, eax
mov edi, 0x4a4c14
jmp 0x45cbc6
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 - 4]
push esi
call fcn.00441625
add esp, 0x10
jmp 0x45d084
cmp byte [ebp - 0xb], 0
je 0x45cbe9
cmp dword [ebp - 0x38], ebx
jl 0x45d044
mov al, byte [ebp - 0xa]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x38]
or eax, dword [ebp - 0x10c]
push eax
lea eax, [ebp - 4]
push eax
call fcn.00458229
pop ecx
pop ecx
jmp 0x45d044
cmp dword [ebp - 0x38], ebx
jl 0x45d044
cmp byte [ebp - 0x43], 0
je 0x45cc27
cmp dword [ebp + 0x60], ebx
jl 0x45d044
push dword [ebp - 0x9c]
movsx eax, byte [ebp - 0xa]
or eax, dword [ebp - 0x40]
push ebx
push ebx
push eax
push dword [ebp + 0x60]
lea eax, [ebp - 4]
push dword [ebp - 0x38]
push eax
call fcn.004585df
add esp, 0x1c
jmp 0x45d044
mov eax, dword [ebp - 0x94]
mov ax, word [eax]
movzx esi, ax
and esi, 0xffffffdf
cmp esi, 0x41
jl 0x45d03c
cmp esi, 0x5a
jg 0x45d03c
cmp dword [ebp - 0x84], ebx
jle 0x45ccec
push 0x488
lea ecx, [ebp - 0x48]
call fcn.0043d373
mov edi, dword [ebp - 0x48]
push 0x288
add edi, 0x200
push ebx
push edi
call fcn.0048f7a0
mov eax, esi
shl eax, 0x10
or eax, dword [ebp - 0x84]
push eax
push dword [ebp - 0x48]
push edi
call fcn.00449516
lea eax, [esi + esi*2 - 0xc3]
lea edi, [edi + eax*8]
add esp, 0x18
cmp dword [edi + 8], ebx
jle 0x45ccdf
push 0x64
lea ecx, [ebp - 4]
call fcn.0043d4c2
push esi
push dword [edi + 4]
push str._d__c:
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x48]
call fcn.00437960
jmp 0x45d03c
mov ecx, dword [ebp - 4]
mov word [ecx], ax
mov eax, dword [ebp - 4]
cmp word [eax], bx
je 0x45d03c
push dword [ebp - 0x9c]
mov eax, dword [ebp - 0x40]
push ebx
and eax, 0xfffffffd
push ebx
or eax, 0xc
push eax
push dword [ebp + 0x60]
lea eax, [ebp - 4]
push dword [ebp - 0x38]
push eax
call fcn.004585df
add esp, 0x1c
jmp 0x45d03c
cmp dword [ebp - 0x10], ebx
jge 0x45cda9
mov ecx, dword [ebp - 0x94]
cmp word [ecx], bx
je 0x45cda6
mov eax, ecx
cmp word [eax + 2], 0x3a
jne 0x45cd94
cmp word [eax + 4], 0x5c
jne 0x45cd51
cmp word [eax + 6], bx
jne 0x45cd51
mov word [eax + 4], bx
cmp word [eax + 4], bx
jne 0x45cd94
push 9
lea ecx, [ebp + 0x48]
call fcn.0043d4c2
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp - 0x94]
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 0x45cda6
push esi
push dword [ebp - 0x94]
lea ecx, [ebp + 0x48]
call fcn.0043d5a1
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x60], esi
cmp dword [ebp + 0x60], ebx
jg 0x45cdb1
mov dword [ebp + 0x60], esi
push eax
push dword [ebp + 0x60]
lea eax, [ebp - 4]
push dword [ebp - 0x10]
push eax
call fcn.00404a76
jmp 0x45d039
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x48]
mov esi, eax
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45c3ad
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, ebx
jmp 0x45a2ef
lea ecx, [ebp - 0x1c]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
jmp 0x45d098
lea ecx, [ebp - 0x1c]
jmp 0x45ce90
lea ecx, [ebp - 0x1c]
jmp 0x45cead
lea ecx, [ebp + 0x48]
call fcn.00437960
jmp 0x45c705
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, ebx
je 0x45a26f
push eax
jmp 0x45a269
lea ecx, [ebp - 0x28]
call fcn.00437960
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
jmp 0x45c9b8
lea ecx, [ebp - 0x28]
call fcn.00437960
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
test eax, eax
je 0x45cee2
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45d0c2
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, esi
je 0x45a1e4
push eax
jmp 0x45a1de
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, edi
jmp 0x45ced9
lea ecx, [ebp + 8]
call fcn.00437960
lea ecx, [ebp + 0x48]
call fcn.00437960
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
test eax, eax
jmp 0x45d0b7
push 0x1000
lea ecx, [ebp - 4]
call fcn.0043d4c2
cmp dword [ebp - 0x10], ebx
jl 0x45d016
push 0x488
lea ecx, [ebp + 0x28]
call fcn.0043d373
mov edi, dword [ebp + 0x28]
push 0x288
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.0048f7a0
push dword [ebp - 0x84]
push edi
push esi
call fcn.00449516
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x10]
cmp dword [eax], ecx
je 0x45cfe7
inc edi
add eax, 0x18
cmp edi, 0x1a
jle 0x45cfd5
jmp 0x45d00e
push 0x64
lea ecx, [ebp - 4]
call fcn.0043d4c2
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 - 4]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x28]
jmp 0x45cce2
cmp byte [ebp - 0xb], 0
jne 0x45d03c
cmp byte [ebp + 0x4f], 4
mov eax, 0x4a4c24
je 0x45d02c
mov eax, 0x4a4c14
push eax
push ebx
push dword [ebp - 4]
push dword [ebp - 0x10]
call fcn.00441625
add esp, 0x10
lea ecx, [ebp + 0x48]
call fcn.00437960
mov ecx, dword [ebp - 0x1a0]
cmp ecx, ebx
jle 0x45d084
mov eax, dword [ebp - 4]
dec ecx
mov dword [ebp - 0x168], ecx
push ebx
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp - 0x12c]
push eax
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0x168]
push eax
mov dword [ebp - 4], ebx
call fcn.0043fcb0
lea ecx, [ebp - 0xd0]
call fcn.00437960
push dword [ebp - 4]
mov ecx, dword [ebp - 0x12c]
push dword [ebp - 0xc4]
call fcn.0043cd78
lea ecx, [ebp + 0x58]
call fcn.00437960
lea ecx, [ebp + 0x68]
call fcn.0043b3ce
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4beadc
cmp eax, ebx
je 0x45d0c0
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
lea ecx, [ebp - 0xa0]
call fcn.00437960
lea ecx, [ebp - 0xc4]
call fcn.00437960
lea ecx, [ebp - 0x94]
call fcn.00437960
lea ecx, [ebp - 0x1ec]
call fcn.00437960
lea ecx, [ebp - 4]
call fcn.00437960
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8