Function at 0x45491f
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, 0x378
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0x120], ecx
call fcn.00431c97
pop ecx
push 5
lea ecx, [ebp + 8]
call fcn.0043719c
push 0x14
lea ecx, [ebp - 0x1c8]
call fcn.0043719c
lea ecx, [ebp - 0xe4]
call fcn.0043717e
lea ecx, [ebp - 0xac]
call fcn.0043717e
lea ecx, [ebp - 0x8c]
call fcn.0043717e
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x2c], eax
push 0x2c
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x10], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0xf8], ebx
mov dword [ebp - 0x7c], esi
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], esi
mov byte [ebp - 0x2d], bl
mov byte [ebp + 3], bl
mov byte [ebp - 0x58], bl
mov byte [ebp - 0x56], bl
mov byte [ebp + 0x45], bl
mov byte [ebp + 0x52], bl
mov byte [ebp + 2], bl
mov byte [ebp - 0x54], bl
mov dword [ebp - 0x78], ebx
call fcn.00439b04
mov eax, dword [ebp - 0xac]
mov word [eax], bx
mov eax, dword [ebp - 0x2c]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x454a52
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x2c], eax
push 0x2c
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00439b04
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x3a], 0
mov byte [ebp + 0x51], 0
mov byte [ebp - 0x53], 0
mov byte [ebp + 0x2f], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x51], 0
mov byte [ebp + 0x38], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x44], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x66], 0
mov byte [ebp + 0x47], 0
mov byte [ebp - 0x22], 0
mov byte [ebp - 5], 0
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x90], 0
mov byte [ebp + 0x23], 0
mov dword [ebp + 0x18], 0xfffff000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x158], esi
je 0x45536e
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454ae9
or byte [ebp + 0x3a], 1
jmp 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454b09
or byte [ebp + 0x3a], 2
jmp 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454b2c
or byte [ebp - 0xf6], 1
jmp 0x4552ed
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454b4f
or byte [ebp - 0xf6], 2
jmp 0x4552ed
push 4
lea eax, [ebp + 0x78]
push eax
push 0x49a4bc
call fcn.00438eee
add esp, 0xc
test al, al
jne 0x455319
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.00438eee
add esp, 0xc
test al, al
jne 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454ba5
or dword [ebp - 0x28], 1
jmp 0x4552ed
push 4
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454bc5
or dword [ebp - 0x28], 2
jmp 0x4552ed
push 5
lea eax, [ebp + 0x78]
push eax
push 0x49fcb8
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454be5
or dword [ebp - 0x28], 0x10
jmp 0x4552ed
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454c05
or dword [ebp - 0x28], 4
jmp 0x4552ed
push 3
lea eax, [ebp + 0x78]
push eax
mov edi, 0x49fcac
push edi
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454c26
mov byte [ebp + 0x44], 1
jmp 0x4552ed
push 3
lea eax, [ebp + 0x78]
push eax
push edi
call fcn.00438eee
add esp, 0xc
test al, al
jne 0x454c1d
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454c5b
mov byte [ebp + 0x5b], 1
jmp 0x4552ed
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454c7b
mov byte [ebp + 0x5b], 0x21
jmp 0x4552ed
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454c9a
mov byte [ebp + 0x66], 1
jmp 0x4552ed
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454cba
mov byte [ebp + 0x66], 0x21
jmp 0x4552ed
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454cd9
mov byte [ebp + 0x47], 1
jmp 0x4552ed
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49fc7c
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454cf8
mov byte [ebp - 0x56], 1
jmp 0x4552ed
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454d17
mov byte [ebp - 0x22], 1
jmp 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push 0x49a450
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454d37
mov byte [ebp - 0x58], 1
jmp 0x4552ed
push 3
lea eax, [ebp + 0x78]
push eax
push 0x49fc70
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454d57
mov byte [ebp - 0x54], 1
jmp 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454d77
or byte [ebp + 2], 0x40
jmp 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454d97
mov byte [ebp + 0x52], 3
jmp 0x4552ed
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.00432c59
add esp, 0xc
test al, al
je 0x454db6
inc edi
mov byte [ebp + 0x52], 3
inc edi
jmp 0x454dce
push 6
push edi
push str._lock:
call fcn.00432c59
add esp, 0xc
test al, al
je 0x454e36
mov byte [ebp + 0x52], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x454e07
mov eax, ecx
call fcn.00431c5f
test al, al
jne 0x454e07
push ecx
call fcn.00410c71
add esp, 4
test al, al
jne 0x454e07
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x14], edi
call fcn.004047e3
jmp 0x454f69
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0040483e
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0040483e
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
pop ecx
jmp 0x4552ed
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454e56
mov byte [ebp + 0x52], 1
jmp 0x4552ed
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.00438eee
add esp, 0xc
test al, al
jne 0x454d8e
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.00438eee
add esp, 0xc
test al, al
je 0x454e97
mov byte [ebp + 0x52], 0xf0
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
jmp 0x4552ed
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x49fc30
call fcn.00432c59
add esp, 0xc
test al, al
je 0x454efc
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x454eca
cmp ax, 0x3d
je 0x454eca
call fcn.00431c5f
test al, al
je 0x454efc
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0x48], ebx
je 0x454ee5
mov dword [ebp - 0x88], 0x49fc28
jmp 0x454e27
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
mov eax, dword [eax]
mov dword [ebp - 0x88], eax
jmp 0x454f5f
push 4
push edi
push str._pbr
call fcn.00432c59
add esp, 0xc
test al, al
je 0x454f82
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x454f2c
cmp ax, 0x3d
je 0x454f2c
call fcn.00431c5f
test al, al
je 0x454f82
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x88], ebx
push eax
je 0x454f51
mov dword [ebp - 0x48], 0x49895e
call fcn.004047e3
pop ecx
jmp 0x454e27
add dword [ebp + 0x78], 2
call fcn.00431c97
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
lea eax, [ebp + 0x78]
push eax
call fcn.004047e3
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x454e27
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x454e27
push 9
push edi
push str._alignend
call fcn.00432c59
add esp, 0xc
test al, al
je 0x455009
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x454fb2
cmp ax, 0x3d
je 0x454fb2
call fcn.00431c5f
test al, al
je 0x455009
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x454ffa
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.00410c71
add esp, 4
test al, al
je 0x4552d1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x34], ecx
call fcn.0043bfa0
cmp dword [ebp - 0x4c], ebx
pop ecx
pop ecx
jg 0x4552d1
jl 0x454ffa
cmp dword [ebp - 0x50], ebx
ja 0x4552d1
mov dword [ebp - 0x50], 0xfffffffe
mov dword [ebp - 0x4c], esi
jmp 0x4552d1
push 6
push edi
push str._align
call fcn.00432c59
add esp, 0xc
test al, al
je 0x4550a8
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45503d
cmp ax, 0x3d
je 0x45503d
call fcn.00431c5f
test al, al
je 0x4550a8
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.004047e3
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x455067
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
jmp 0x4552ed
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.00410c71
add esp, 4
test al, al
je 0x4552ed
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x34], ecx
call fcn.0043bfa0
cmp dword [ebp - 0x70], ebx
pop ecx
pop ecx
jg 0x4552ed
jl 0x45505c
cmp dword [ebp - 0x74], ebx
ja 0x4552ed
jmp 0x45505c
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4550ca
mov byte [ebp - 0x53], 1
jmp 0x4552ed
push 3
lea eax, [ebp + 0x78]
push eax
push 0x49a8c4
call fcn.00438eee
add esp, 0xc
test al, al
jne 0x4552e9
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.00438eee
add esp, 0xc
test al, al
jne 0x4552e9
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.00438eee
add esp, 0xc
test al, al
je 0x455124
or dword [ebp - 0x28], 0x20
mov byte [ebp - 0x35], 1
jmp 0x4552ed
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45515d
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439fac
test eax, eax
pop ecx
pop ecx
jl 0x45885a
mov byte [ebp + 0x23], 1
jmp 0x4552ed
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.00432c59
add esp, 0xc
test al, al
je 0x4551fc
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], edi
call fcn.00404807
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00410c71
add esp, 0xc
test al, al
je 0x4551b7
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.0043bfa0
pop ecx
pop ecx
mov eax, dword [ebp + 0x54]
cmp word [eax], 0x3a
jne 0x4551d6
add dword [ebp + 0x54], 2
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.0043bfa0
pop ecx
pop ecx
mov eax, dword [ebp + 0x54]
cmp word [eax], 0x3a
jne 0x4552ed
add dword [ebp + 0x54], 2
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.0043bfa0
jmp 0x4552e3
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.00432c59
add esp, 0xc
test al, al
jne 0x4552f9
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45525d
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x3c], 0x42
call fcn.00439fac
mov al, byte [ebp - 0x3c]
add esp, 0xc
mov byte [ebp - 0x90], al
jmp 0x4552ed
push 4
push dword [ebp + 0x78]
push str._iv
call fcn.00432c59
add esp, 0xc
test al, al
je 0x455289
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x158]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439fac
jmp 0x4552e3
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4552a8
mov dword [ebp - 0x78], 8
jmp 0x4552ed
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4552c8
mov dword [ebp - 0x78], 0x10
jmp 0x4552ed
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x4552f9
lea eax, [ebp + 0x78]
push eax
call fcn.004047e3
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
pop ecx
jmp 0x454e30
mov byte [ebp + 0x2f], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x454ac9
cmp dword [ebp - 0x50], 0xfffffffe
jne 0x455363
cmp dword [ebp - 0x4c], esi
jne 0x455363
mov eax, dword [ebp - 0x74]
cmp eax, 0xfffffff7
jne 0x45535a
cmp dword [ebp - 0x70], esi
jne 0x45535a
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
jmp 0x45536e
push str.21:INDATA
lea ecx, [ebp - 0x90]
call fcn.004419bc
push dword [ebp + 0x78]
lea ecx, [ebp - 0x90]
call fcn.004371ec
push dword [ebp - 0x90]
mov ecx, dword [ebp - 0x120]
call fcn.004296fc
lea ecx, [ebp - 0x90]
mov esi, eax
call fcn.00431c4c
jmp 0x458a1b
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x74], 0xfffffff7
jne 0x455378
cmp dword [ebp - 0x70], esi
jne 0x455378
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x70], ebx
cmp dword [ebp - 0x50], 0xfffffff7
jne 0x45538f
cmp dword [ebp - 0x4c], esi
jne 0x45538f
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x4c], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49fbac
call fcn.00438eee
add esp, 0xc
test al, al
je 0x45548a
push edi
lea eax, [ebp + 0x78]
push eax
push 0x49fba4
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4553cb
mov byte [ebp + 0x51], 1
jmp 0x45548a
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4553ea
mov byte [ebp + 0x51], 2
jmp 0x45548a
push 3
lea eax, [ebp + 0x78]
push eax
push 0x49fb98
call fcn.00438eee
add esp, 0xc
test al, al
je 0x45540a
mov byte [ebp + 0x51], 3
jmp 0x45548a
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.00438eee
add esp, 0xc
test al, al
je 0x45542e
mov byte [ebp + 0x51], 4
mov dword [ebp - 0x78], 8
jmp 0x45548a
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.00438eee
add esp, 0xc
test al, al
je 0x455452
mov byte [ebp + 0x51], 5
mov dword [ebp - 0x78], 0x10
jmp 0x45548a
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.00438eee
add esp, 0xc
test al, al
je 0x45546f
mov byte [ebp + 0x51], 6
jmp 0x45548a
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.00438eee
add esp, 0xc
test al, al
je 0x45548a
mov byte [ebp + 0x51], 7
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x39], 0
call fcn.00438eee
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x4554ae
mov byte [ebp + 0x45], 1
mov dword [ebp + 0x60], edi
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4554cc
mov byte [ebp + 0x39], 1
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.00438eee
add esp, 0xc
test al, al
je 0x4554ea
mov byte [ebp + 0x39], 0x20
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.00438eee
add esp, 0xc
test al, al
je 0x455508
mov byte [ebp + 0x39], 0x10
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.004047e3
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xe4]
call fcn.004372a4
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x45554f
mov dword [ebp - 0x7c], 0x80
jmp 0x455566
cmp ax, 0x2d
jne 0x455570
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x455570
mov dword [ebp - 0x7c], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.004047e3
pop ecx
xor eax, eax
mov dword [ebp - 0x1f0], ebx
lea edi, [ebp - 0x1ec]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x4b02a8
push edi
mov dword [ebp - 0x17c], 0xebd0a0a2
mov word [ebp - 0x178], 0xb9e5
mov word [ebp - 0x176], 0x4433
mov byte [ebp - 0x174], 0x87
mov byte [ebp - 0x173], 0xc0
mov byte [ebp - 0x172], 0x68
mov byte [ebp - 0x171], 0xb6
mov byte [ebp - 0x170], 0xb7
mov byte [ebp - 0x16f], 0x26
mov byte [ebp - 0x16e], 0x99
mov byte [ebp - 0x16d], 0xc7
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x3c], str.MS_Basic_Data
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x140], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x47], 0
jne 0x455656
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439fac
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x45567d
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.00410c71
add esp, 4
test al, al
jne 0x45567d
mov ecx, edx
mov byte [ebp - 0x51], 1
mov dword [ebp + 0x78], ecx
jmp 0x45567d
push ebx
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004486e2
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x150], eax
jne 0x45567a
push edi
jmp 0x458a13
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x45568d
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x2d], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x45569e
lea eax, [ebp + 0x78]
push eax
call fcn.00404807
jmp 0x4556b2
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043c03d
pop ecx
mov dword [ebp - 0x134], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x55], 1
jne 0x4556c9
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x55], 0
cmp word [eax], 0x2d
jne 0x4556da
lea eax, [ebp + 0x78]
push eax
call fcn.00404807
jmp 0x4556ee
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043c03d
pop ecx
mov dword [ebp - 0x140], eax
cmp byte [ebp + 0x47], 0
pop ecx
je 0x455725
push ebx
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004486e2
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043bfa0
add esp, 0x14
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x198], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x45577c
cmp byte [ebp + 0x47], 0
je 0x45577c
cmp cx, bx
je 0x45577c
mov dword [ebp - 0x19c], eax
push ebx
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp - 0x19c]
push eax
call fcn.00417571
mov eax, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x198]
add esp, 0xc
mov dword [ebp - 0x154], 1
mov dword [ebp - 0x3c], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x51], 1
mov byte [ebp + 1], 0
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x1a], 0
je 0x455797
cmp byte [ebp + 0x51], 4
jge 0x455797
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0xe4]
push 5
push ebx
mov edi, ebx
push str._img
mov dword [ebp + 0x78], edi
call fcn.00432c59
add esp, 0xc
test al, al
je 0x455865
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edx, ecx
jne 0x455818
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x30]
add ecx, 2
push eax
mov dword [ebp + 0x30], ecx
call fcn.0043c03d
mov edx, dword [ebp + 0x30]
cmp word [edx], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x1a], 1
jne 0x455813
lea eax, [ebp - 0xe0]
push eax
inc edx
lea eax, [ebp + 0x30]
inc edx
push eax
mov dword [ebp + 0x30], edx
call fcn.0043c03d
mov edx, dword [ebp + 0x30]
cmp word [edx], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x1a], 0x11
jne 0x455813
inc edx
inc edx
mov ecx, edx
mov dword [ebp + 0x78], ecx
xor edi, edi
jmp 0x455832
mov eax, edi
call fcn.00431c5f
test al, al
jne 0x45583a
cmp di, 0x23
je 0x45583a
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov di, word [ecx]
test di, di
jne 0x45581c
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x455856
push ecx
push edx
lea ecx, [ebp - 0x8c]
call fcn.004372a4
mov dword [ebp - 0x10], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00431c97
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x4558ab
push 2
push ebx
push 0x49fb30
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45587f
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00410c71
add esp, 4
test al, al
je 0x4558a3
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439fac
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp + 1]
push 0
push 0x200
push dword [ebp - 0x80]
push dword [ebp - 0x84]
call fcn.004833f0
mov dword [ebp - 0x6c], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x68], edx
je 0x4558d9
cmp ax, 0x3a
jne 0x45597e
inc edi
inc edi
push 2
push edi
push 0x49fb2c
mov dword [ebp + 0x78], edi
call fcn.00432c59
push 2
push edi
push 0x49fb28
mov byte [ebp + 0x67], al
call fcn.00432c59
mov byte [ebp + 0x38], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x38]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x2e], al
jne 0x455925
cmp word [edi], 0x2b
jne 0x455925
inc edi
inc edi
mov byte [ebp - 5], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x38], 0
jne 0x455949
mov ax, word [edi]
cmp ax, 0x40
je 0x455940
cmp ax, 0x2d
je 0x455940
cmp ax, 0x3d
jne 0x455949
or dword [ebp - 0x28], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00410c71
add esp, 4
test al, al
je 0x45597e
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00439fac
test eax, eax
pop ecx
pop ecx
jle 0x45597e
cmp dword [ebp + 0x60], 0
mov byte [ebp + 3], 1
jne 0x455982
mov byte [ebp + 0x67], 1
jmp 0x455984
cmp dword [ebp + 0x60], 0
jg 0x4559a0
cmp byte [ebp + 0x51], 0
jg 0x4559a0
cmp dword [ebp - 0x88], 0
jne 0x4559a0
cmp dword [ebp - 0x48], 0
jne 0x4559a0
xor ecx, ecx
mov dword [ebp + 0x54], ecx
jmp 0x4559a9
mov dword [ebp + 0x54], 1
xor ecx, ecx
cmp byte [ebp + 0x52], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
je 0x4559ca
cmp dword [ebp + 0x54], ecx
jne 0x4559ca
cmp word [ebx], cx
jne 0x4559ca
mov eax, 0xfffc0000
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x8c]
lea edi, [ebp - 0x288]
mov word [ebp - 0x288], cx
cmp word [eax], cx
mov dword [ebp - 0xa4], edi
je 0x4559f0
mov edi, eax
mov dword [ebp - 0xa4], edi
push dword [ebp - 0x10]
lea eax, [ebp - 0x288]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp - 0x84]
add esp, 0xc
or eax, dword [ebp - 0x80]
jne 0x455a3a
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x455a3a
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x34]
add edi, 0x22
push eax
mov dword [ebp + 0x34], edi
call fcn.00439fac
pop ecx
pop ecx
cmp byte [ebp + 0x39], 0
jne 0x455a4c
cmp byte [ebp + 0x5b], 0
jne 0x455a4c
cmp byte [ebp + 0x66], 0
je 0x455a62
cmp dword [ebp - 0x10], 0
jge 0x455a62
cmp dword [ebp - 0xc], 0
jge 0x455a62
push 0x4b02a8
jmp 0x458854
xor ebx, ebx
cmp byte [ebp + 0x52], bl
mov edi, 0x80070057
mov dword [ebp + 0x6c], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp + 4], ebx
mov dword [ebp - 0xa8], edi
mov byte [ebp + 0x68], bl
je 0x455b3b
cmp dword [ebp - 0xc], ebx
jge 0x455a9e
cmp dword [ebp - 0x40], esi
jl 0x455a9e
jg 0x455a95
cmp dword [ebp - 0x44], esi
jbe 0x455a9e
cmp dword [ebp - 0x14], ebx
je 0x455b3b
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x455ad6
cmp word [eax], 0x2a
jne 0x455ad6
xor eax, eax
mov al, byte [ebp + 0x52]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0xc]
call fcn.00448890
pop ecx
mov dword [ebp - 0xa8], eax
mov dword [ebp + 4], eax
xor eax, eax
or byte [0x4b0240], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
cmp dword [ebp - 0xc], ebx
jge 0x455aeb
cmp dword [ebp - 0x40], esi
jl 0x455aeb
jg 0x455ae7
cmp dword [ebp - 0x44], esi
jbe 0x455aeb
cmp eax, ebx
je 0x455b3b
push eax
xor eax, eax
mov al, byte [ebp + 0x52]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0xc]
call fcn.0040441d
mov dword [ebp + 4], eax
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x44]
and eax, dword [ebp - 0x40]
add esp, 0x1c
cmp eax, esi
je 0x455b34
or byte [ebp + 0x68], 0x10
or byte [0x4b0240], 0x10
jmp 0x455b3b
mov byte [0x4b0240], 0
cmp byte [ebp + 0x23], 0
jbe 0x455d7e
cmp byte [ebp + 0x47], 0
jne 0x455d7e
cmp dword [ebp - 0x10], ebx
jge 0x455b63
mov eax, dword [ebp - 0x8c]
cmp word [eax], bx
je 0x455d5c
mov eax, dword [ebp + 0x18]
cmp eax, ebx
jle 0x455b73
cmp eax, dword [ebp + 0x60]
je 0x455d5c
cmp dword [ebp + 0x60], 4
jg 0x455d5c
cmp byte [ebp + 0x3a], 2
jl 0x455d5c
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.00404863
cmp dword [ebp + 0x6c], ebx
je 0x455cae
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.0043beaa
add esp, 0x10
push 0x600
lea ecx, [ebp + 0x30]
mov dword [ebp - 0x20], eax
call fcn.00437072
mov esi, dword [ebp + 0x30]
push ebx
lea eax, [ebp - 0x34]
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 0x455c2f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x455c0d
xor esi, esi
inc esi
lea ecx, [ebp + 0x30]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
push 0x4b02a8
jmp 0x457e23
push 0x200
push edi
push esi
call fcn.00410b58
dec dword [ebp + 0x18]
dec dword [ebp + 0x60]
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + esi + 0x1be]
mov dword [ebp + 0x34], eax
push ecx
lea eax, [eax + edi + 0x1be]
push eax
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
call fcn.00410b58
mov eax, dword [ebp + 0x34]
lea eax, [eax + esi + 0x1be]
push 0x10
push eax
lea eax, [ebx + edi + 0x1be]
push eax
call fcn.00410b58
push 0
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x34
test eax, eax
je 0x455cd1
lea ecx, [ebp + 0x30]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
push 0x4b02a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x458a1b
and dword [ebp + 4], 0
mov ebx, 0x200
push ebx
push edi
push esi
call fcn.00437452
add esp, 0xc
test eax, eax
jne 0x455d14
push eax
lea eax, [ebp - 0x34]
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x455d0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x455d08
inc eax
mov dword [ebp + 4], eax
push dword [ebp + 0x6c]
call fcn.004353db
pop ecx
mov al, byte [ebp + 0x66]
or al, byte [ebp + 0x44]
lea ecx, [ebp + 0x30]
or byte [ebp + 0x5b], al
mov al, byte [ebp + 0x66]
or al, byte [ebp + 0x5b]
or al, byte [ebp + 0x44]
je 0x455d34
and dword [ebp + 0x54], 0
jmp 0x457cbb
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
push 0x4b02a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 4]
jmp 0x458a1b
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
push 0x4b02a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, edi
jmp 0x458a1b
cmp byte [ebp + 0x39], 0x10
jne 0x455d91
test byte [ebp + 0x66], 0x20
jne 0x457cc0
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x52], bl
mov edi, 0x200
je 0x455de8
cmp dword [ebp + 0x54], ebx
jne 0x455de8
cmp byte [ebp + 0x44], bl
jne 0x457cc0
cmp byte [ebp + 0x5b], bl
jne 0x457cc0
cmp byte [ebp + 0x66], bl
jne 0x457cc0
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
test eax, eax
je 0x455ddd
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0xa8]
jmp 0x458a1b
push 0x600
lea ecx, [ebp + 0x5c]
call fcn.00437072
mov eax, dword [ebp + 0x5c]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp - 0x88], ebx
mov dword [ebp + 0x28], eax
jne 0x457e2e
cmp dword [ebp - 0x48], ebx
jne 0x458190
mov al, byte [ebp + 0x51]
cmp al, 6
je 0x45856e
cmp al, 1
je 0x458630
cmp al, 2
je 0x458665
cmp al, 3
je 0x458689
cmp al, 4
je 0x4588ec
cmp al, 5
je 0x4588ec
cmp al, 7
je 0x458766
cmp byte [ebp + 0x38], 0
je 0x455e74
mov dword [ebp - 0x7c], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x67], 0
je 0x455e81
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x2f], 0
je 0x455e99
mov dword [ebp - 0x7c], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
cmp byte [ebp + 1], 0
je 0x455ea8
cmp dword [ebp - 0xc], ebx
jl 0x457e3e
cmp byte [ebp - 0x2e], 0
je 0x455eb7
cmp dword [ebp + 0x60], ebx
jl 0x457e3e
dec dword [ebp + 0x60]
cmp byte [ebp + 0x47], 0
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], esi
mov byte [ebp - 0x52], 0
mov byte [ebp - 0x57], 0
mov dword [ebp + 0x34], ebx
mov byte [ebp + 0x23], 0
mov byte [ebp - 0x19], 0
mov dword [ebp - 0x5c], ebx
jne 0x455f07
cmp dword [ebp + 0x1c], ebx
jne 0x455f07
mov eax, dword [ebp + 0x48]
or eax, dword [ebp + 0x4c]
jne 0x455f07
mov eax, dword [ebp + 0x3c]
or eax, dword [ebp + 0x40]
jne 0x455f07
mov byte [ebp + 0x2f], 1
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 0x54], 0
je 0x456122
cmp dword [ebp + 0x4c], ebx
jl 0x456122
jg 0x455f2c
cmp dword [ebp + 0x48], ebx
jb 0x456122
cmp dword [ebp + 0x40], ebx
jl 0x456122
jg 0x455f41
cmp dword [ebp + 0x3c], 0x11
jb 0x456122
push ebx
push edi
push dword [ebp + 0x4c]
mov dword [ebp - 0x14], 1
push dword [ebp + 0x48]
call fcn.004833f0
test byte [ebp + 0x68], 0x11
jne 0x455f74
push ebx
push ebx
push ebx
push 0x2200
push edx
push eax
push dword [ebp - 0xc]
call fcn.0040441d
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.00404863
cmp dword [ebp + 0x6c], ebx
je 0x45877d
cmp dword [ebp - 0x14], ebx
je 0x455fd0
cmp byte [ebp + 0x67], 0
jne 0x455fd0
mov eax, dword [ebp - 0x84]
add eax, dword [ebp + 0x48]
mov ecx, dword [ebp - 0x80]
adc ecx, dword [ebp + 0x4c]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0042dacb
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.00435414
mov dword [ebp - 0xa8], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.0043beaa
add esp, 0x10
cmp byte [ebp + 0x39], 0
mov dword [ebp - 0x20], eax
jne 0x4567dd
cmp dword [ebp + 0x1c], 0xff
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], ebx
jg 0x4587a9
cmp byte [ebp + 0x67], 0
jne 0x456054
cmp dword [ebp + 0x60], ebx
jge 0x456054
cmp dword [ebp + 0x4c], ebx
jg 0x4587a9
jl 0x456028
cmp dword [ebp + 0x48], ebx
jae 0x4587a9
cmp dword [ebp + 0x40], ebx
jg 0x4587a9
jl 0x45603c
cmp dword [ebp + 0x3c], ebx
jae 0x4587a9
cmp dword [ebp + 0x1c], ebx
jge 0x4587a9
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x16c], esi
mov dword [ebp - 0x168], esi
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp + 0x30], eax
jne 0x456099
cmp byte [ebp + 0x38], 0
jne 0x456099
cmp eax, 4
jl 0x45667e
cmp byte [ebp + 0x47], 0
jne 0x45667e
cmp byte [ebp + 0x45], 0
jne 0x45667e
cmp byte [ebp + 0x67], 0
je 0x4560ba
mov dword [ebp + 0x60], 4
cmp dword [ebp + 0x1c], 5
je 0x457e3e
cmp dword [ebp + 0x1c], 0xf
je 0x457e3e
push 0x100000
lea ecx, [ebp - 0x18]
mov dword [ebp + 0x54], ebx
call fcn.00437072
lea eax, [ebp + 0x54]
push eax
push dword [ebp - 0x18]
push dword [ebp + 0x6c]
call fcn.00435262
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x54]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x45612a
cmp edx, ecx
jge 0x456107
cmp ecx, 4
jge 0x456167
cmp byte [ebp + 0x67], 0
jne 0x45612a
cmp byte [ebp + 0x38], 0
jne 0x45612a
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x46], 0
jg 0x456153
dec eax
jmp 0x45615a
mov dword [ebp - 0x14], ebx
jmp 0x455f74
cmp byte [ebp + 0x38], 0
mov byte [ebp + 0x46], 1
jne 0x45616f
cmp byte [ebp + 0x67], 0
je 0x456174
cmp dword [ebp + 0x1c], ebx
jl 0x456167
cmp word [ebp - 0x7c], bx
jle 0x45614e
mov dword [ebp - 0x7c], 0x80
jmp 0x456174
mov dword [ebp - 0x7c], ebx
jmp 0x456174
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x456167
cmp eax, edx
jl 0x456174
cmp ecx, 4
jle 0x456174
lea ecx, [ebp - 0x18]
jmp 0x456971
cmp edx, 4
jle 0x456167
cmp edx, 4
jle 0x456184
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x10], eax
jmp 0x456187
mov dword [ebp + 0x10], ebx
cmp byte [ebp + 0x46], 0
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x30], esi
jne 0x4561a7
cmp ecx, 4
jl 0x4561a4
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0x10], eax
jmp 0x4561a7
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0xc], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x4561bb
cmp cl, 0xf
jne 0x4561be
mov dword [ebp + 0xc], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x4561af
cmp byte [ebp + 0x46], 0
je 0x4561d4
cmp dword [ebp + 0xc], ebx
jl 0x456167
mov eax, dword [ebp + 0xc]
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.00483340
push ebx
push 0x200
push dword [esi + 0x14]
mov dword [ebp - 0x1b4], eax
push dword [esi + 0x10]
mov dword [ebp - 0x1b0], edx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
call fcn.00483340
mov dword [ebp - 0x194], eax
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x38], 0
mov dword [ebp - 0x190], edx
lea esi, [eax + edi + 0x30]
je 0x4562fc
mov eax, dword [ebp + 0x54]
xor esi, esi
cmp eax, 8
jne 0x456256
mov ecx, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1b0]
jmp 0x4562a9
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 0x456285
cmp cl, 0xf
je 0x456285
inc esi
add eax, 0x90
cmp esi, 4
jl 0x456269
jmp 0x456167
push ebx
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.00483340
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
cmp esi, ebx
jl 0x456167
xor eax, eax
add ecx, dword [ebp - 0x84]
mov dword [ebp - 0x200], ebx
adc edx, dword [ebp - 0x80]
lea edi, [ebp - 0x1fc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x200]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.0043c323
add esp, 0x14
cmp byte [ebp + 0x66], 0
mov dword [ebp + 4], ebx
jne 0x4562f1
cmp byte [ebp + 0x5b], 0
jne 0x4562f1
cmp byte [ebp + 0x44], 0
je 0x4587cd
mov dword [ebp + 0x54], ebx
lea ecx, [ebp - 0x18]
jmp 0x457cb3
cmp dword [ebp + 0x54], 4
jg 0x45630a
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0x24], eax
jmp 0x456335
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x45631b
cmp cl, 0xf
jne 0x45631e
mov dword [ebp + 0x24], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45630f
cmp byte [ebp + 0x46], 0
jne 0x456335
mov eax, dword [ebp + 0x10]
add dword [ebp + 0x24], eax
cmp dword [ebp + 0x24], ebx
jge 0x456344
cmp byte [ebp + 0x67], 0
je 0x456167
cmp byte [ebp + 0x46], 0
je 0x45634f
mov dword [ebp + 0x30], ebx
jmp 0x456379
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x456361
cmp edx, ebx
jne 0x45636e
cmp cl, 5
je 0x45636e
cmp cl, 0xf
je 0x45636e
mov dword [ebp + 0x30], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x456357
cmp byte [ebp + 0x46], 0
jne 0x456388
cmp dword [ebp + 0x30], ebx
jl 0x456167
cmp byte [ebp + 0x67], 0
je 0x456585
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jg 0x45639c
mov eax, dword [ebp + 0xc]
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 - 0x15c], ecx
call fcn.00483340
cmp dword [ebp + 0x54], 4
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
jle 0x456477
cmp dword [ebp + 0x24], 0
jge 0x456477
cmp byte [esi + 0x20], 0
je 0x4587da
mov eax, dword [ebp + 0x54]
cmp eax, 8
jle 0x4563f5
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x4563f8
mov eax, dword [ebp + 0xc]
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.00483340
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x64], 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 - 0x60], edx
call fcn.00483340
mov ecx, dword [ebp - 0x190]
mov esi, eax
sub eax, dword [ebp - 0x130]
mov edi, edx
mov dword [ebp - 0x16c], eax
mov eax, edi
sbb eax, dword [ebp - 0x12c]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x194]
sub eax, esi
sbb ecx, edi
add eax, dword [ebp - 0x130]
adc ecx, dword [ebp - 0x12c]
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], ecx
jmp 0x4564c8
cmp dword [ebp + 0x10], 0
jle 0x45649a
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x14]
adc ecx, dword [ebp - 0x15c]
push 0
push 0x200
push ecx
push eax
call fcn.00483340
mov ecx, dword [ebp - 0x190]
mov esi, eax
mov eax, dword [ebp - 0x194]
sub eax, esi
mov edi, edx
sbb ecx, edi
add eax, dword [ebp - 0x130]
adc ecx, dword [ebp - 0x12c]
and dword [ebp - 0xf4], 0
and dword [ebp - 0xf0], 0
test ecx, ecx
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], edi
jl 0x4587e2
jg 0x4564e6
test eax, eax
jbe 0x4587e2
cmp byte [ebp - 0x2d], 0
je 0x4564f2
add dword [ebp + 0x48], esi
adc dword [ebp + 0x4c], edi
mov ebx, esi
add ebx, 1
mov edx, edi
adc edx, 0
cmp dword [ebp + 0x4c], edx
jg 0x45650e
jl 0x456508
cmp dword [ebp + 0x48], ebx
ja 0x45650e
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], edx
sub eax, dword [ebp + 0x48]
sbb ecx, dword [ebp + 0x4c]
add eax, esi
adc ecx, edi
cmp dword [ebp + 0x40], ecx
jl 0x45652a
jg 0x456524
cmp dword [ebp + 0x3c], eax
jbe 0x45652a
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], ecx
xor ebx, ebx
cmp dword [ebp + 0x40], ebx
jl 0x456167
jg 0x456540
cmp dword [ebp + 0x3c], ebx
jb 0x456167
cmp dword [ebp + 0x10], ebx
mov eax, dword [ebp + 0x54]
jle 0x45655e
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x456554
inc eax
jmp 0x456566
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x456566
and eax, 0xfffffffc
cmp eax, 3
jg 0x456569
inc eax
jmp 0x456571
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], edi
jmp 0x45666f
mov eax, dword [ebp + 0x24]
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 - 0x1bc], eax
mov eax, 0x200
push ebx
add edx, eax
mov dword [ebp - 0x1b8], ecx
push eax
adc ecx, ebx
push ecx
push edx
call fcn.00483340
mov ecx, dword [esi + 0x10]
mov edi, eax
mov eax, 0x200
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0xb4], edx
mov edx, dword [esi + 0x14]
push ebx
sub ecx, eax
push eax
sbb edx, ebx
push edx
push ecx
mov dword [ebp - 0xb8], edi
call fcn.00483340
cmp byte [ebp - 0x2d], 0
je 0x4565f6
add dword [ebp + 0x48], edi
mov ecx, dword [ebp - 0x1a0]
adc dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x4c], ebx
jl 0x45661a
jg 0x456602
cmp dword [ebp + 0x48], ebx
jbe 0x45661a
mov ecx, dword [ebp - 0x1a0]
cmp dword [ebp + 0x4c], ecx
jg 0x45661a
jl 0x456614
cmp dword [ebp + 0x48], edi
ja 0x45661a
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x40], ebx
jl 0x45664c
jg 0x456626
cmp dword [ebp + 0x3c], ebx
jbe 0x45664c
cmp dword [ebp + 0x40], edx
jl 0x456638
jg 0x456632
cmp dword [ebp + 0x3c], eax
jbe 0x456638
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], edx
cmp dword [ebp + 0x40], ebx
jl 0x456167
jg 0x45664c
cmp dword [ebp + 0x3c], ebx
jb 0x456167
push ebx
push 0x200
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
call fcn.00483340
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
lea ecx, [ebp - 0x18]
call fcn.00431c4c
xor ebx, ebx
mov edi, 0x200
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
setge byte [ebp - 0x21]
add eax, dword [ebp - 0x84]
push ebx
adc ecx, dword [ebp - 0x80]
push edi
push ecx
push eax
call fcn.004833f0
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], edx
je 0x4566e5
cmp byte [ebp + 0x67], 0
je 0x4566e5
mov eax, dword [ebp - 0x84]
add eax, dword [ebp + 0x48]
mov ecx, dword [ebp - 0x80]
adc ecx, dword [ebp + 0x4c]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0042dacb
add esp, 0xc
lea ecx, [ebp + 0x68]
call fcn.00435414
mov dword [ebp - 0xa8], ebx
mov esi, dword [ebp + 0x28]
push edi
push ebx
add esi, 0x200
push esi
call fcn.004832e0
push ebx
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x1c
cmp eax, dword [ebp - 0x100]
jne 0x45816c
cmp edx, dword [ebp - 0xfc]
jne 0x45816c
push ebx
lea eax, [ebp - 0x34]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
push esi
push dword [ebp + 0x28]
mov dword [ebp + 0x54], eax
call fcn.00410b58
add esp, 0xc
cmp dword [ebp + 0x54], ebx
je 0x45816c
cmp byte [ebp + 0x45], 0
je 0x4567e5
cmp byte [ebp + 0x47], 0
jne 0x4567e5
push esi
call fcn.004353f3
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.004832e0
push edi
push esi
push dword [ebp + 0x28]
mov word [esi + 0x1fe], 0xaa55
call fcn.00431d19
add esp, 0x1c
test eax, eax
je 0x4567c5
push ebx
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
push ebx
lea eax, [ebp - 0x34]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x34], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp + 4], eax
mov al, byte [ebp + 0x66]
or al, byte [ebp + 0x5b]
or al, byte [ebp + 0x44]
je 0x4587e7
cmp dword [ebp - 0x10], ebx
jl 0x4587e7
mov dword [ebp + 0x54], ebx
jmp 0x457cb8
cmp byte [ebp + 0x3a], 0
jne 0x4567fb
cmp byte [ebp + 3], 0
je 0x45680a
cmp dword [ebp + 0x60], 1
jle 0x457e3e
cmp byte [ebp + 3], 0
je 0x45680a
cmp dword [ebp + 0x60], ebx
jl 0x457e3e
push dword [ebp + 0x6c]
call fcn.00434e93
lea ecx, [ebp + 0x14]
mov dword [ebp + 0xc], eax
mov dword [esp], 0x100000
call fcn.00437072
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
jl 0x456857
push dword [ebp + 0x6c]
mov esi, dword [ebp + 0x14]
call fcn.0043500e
pop ecx
push ebx
push dword [ebp + 0xc]
push edx
push eax
call fcn.00483340
mov esi, dword [ebp - 0xdc]
jmp 0x4568c1
mov esi, dword [ebp - 0xdc]
cmp esi, ebx
jl 0x45687d
jg 0x45686b
cmp dword [ebp - 0xe0], ebx
jb 0x45687d
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], esi
lea eax, [ebp - 0x224]
push eax
push ebx
push dword [ebp - 0xa4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x456904
test byte [ebp - 0x224], 0x10
jne 0x456904
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x204]
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 - 0x84]
sbb edx, dword [ebp - 0x80]
cmp esi, ebx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
jl 0x456904
jg 0x4568e4
cmp dword [ebp - 0xe0], ebx
jbe 0x456904
cmp edx, esi
ja 0x456904
jb 0x4568f2
cmp eax, dword [ebp - 0xe0]
jae 0x456904
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], esi
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x6c]
call fcn.00435262
mov ecx, dword [ebp - 0x8c]
mov cx, word [ecx]
add esp, 0xc
cmp cx, bx
mov dword [ebp - 0xb0], eax
jne 0x456931
cmp eax, ebx
je 0x45696e
cmp eax, ebx
je 0x456939
mov eax, dword [eax]
jmp 0x45693b
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x53]
cmp byte [ebp + 0x53], 0
je 0x456952
cmp byte [ebp - 0x56], 0
mov byte [ebp + 0x3b], 1
je 0x456956
mov byte [ebp + 0x3b], 0
cmp byte [ebp - 0x58], 0
jne 0x456981
cmp byte [ebp + 0x45], 0
jne 0x456981
cmp byte [ebp + 0x3b], 0
je 0x45697b
cmp byte [ebp + 0x47], 0
jne 0x456981
lea ecx, [ebp + 0x14]
call fcn.00431c4c
jmp 0x457e3e
cmp byte [ebp + 0x47], 0
jne 0x45696e
cmp cx, bx
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp + 0x54], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 4], eax
jne 0x456a4e
xor eax, eax
mov dword [ebp - 0x1e0], ebx
lea edi, [ebp - 0x1dc]
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 - 0x34]
push eax
push 0x18
lea eax, [ebp - 0x1e0]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0xe8], ebx
jg 0x4569fe
jl 0x4569e8
cmp dword [ebp - 0xec], ebx
ja 0x4569fe
mov eax, dword [ebp - 0x1d4]
mov dword [ebp + 0x10], eax
cdq
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], edx
cmp dword [ebp - 0xd4], ebx
jg 0x456a26
jl 0x456a10
cmp dword [ebp - 0xd8], ebx
ja 0x456a26
mov eax, dword [ebp - 0x1d0]
mov dword [ebp + 0x54], eax
cdq
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], edx
cmp dword [ebp - 0xcc], ebx
jg 0x456a4e
jl 0x456a38
cmp dword [ebp - 0xd0], ebx
ja 0x456a4e
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 4], eax
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xe8], ebx
jg 0x456a74
jl 0x456a60
cmp dword [ebp - 0xec], ebx
ja 0x456a74
mov eax, 0xff
mov dword [ebp + 0x10], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], ebx
cmp dword [ebp - 0xd4], ebx
jg 0x456a98
jl 0x456a86
cmp dword [ebp - 0xd8], ebx
ja 0x456a98
push 0x3f
pop eax
mov dword [ebp + 0x54], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ebx
cmp dword [ebp - 0xcc], ebx
jg 0x456abe
jl 0x456aaa
cmp dword [ebp - 0xd0], ebx
ja 0x456abe
mov eax, 0x200
mov dword [ebp - 4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ebx
mov edi, dword [ebp - 4]
mov eax, edi
cdq
mov ecx, 0x200
idiv ecx
cmp byte [ebp + 0x3b], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x14]
lea ebx, [eax + esi]
lea eax, [ebx + esi + 0x10000]
mov dword [ebp - 0x14], eax
jne 0x4573cf
cmp byte [ebp + 0x47], 0
jne 0x4573cf
cmp byte [ebp + 0x2f], 0
mov byte [ebp + 0x53], 0
jne 0x456f71
mov esi, dword [ebp + 0x4c]
xor eax, eax
cmp esi, eax
jg 0x456b27
jl 0x456b13
cmp dword [ebp + 0x48], eax
jae 0x456b27
cmp dword [ebp + 0x40], eax
jl 0x456f71
jg 0x456b27
cmp dword [ebp + 0x3c], eax
jb 0x456f71
cmp dword [ebp + 0x60], eax
jl 0x456f71
push 0x100000
lea ecx, [ebp - 0x2c]
call fcn.00437072
mov eax, edi
imul eax, dword [ebp + 0x54]
cdq
mov ecx, 0x200
idiv ecx
mov ebx, eax
imul eax, dword [ebp + 0x10]
test edi, edi
cdq
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
jle 0x458822
mov eax, dword [ebp - 0x8c]
cmp word [eax], 0
jne 0x456ba8
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x2c]
push dword [ebp + 0x6c]
call fcn.00435262
add esp, 0xc
test eax, eax
je 0x458812
cmp dword [ebp + 0x60], 4
jl 0x456ba8
cmp byte [ebp + 0x67], 0
jne 0x456ba8
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp - 0x14]
jge 0x458822
xor eax, eax
xor edx, edx
test esi, esi
jl 0x456c47
jg 0x456bbf
cmp dword [ebp + 0x48], edx
jbe 0x456c47
mov ecx, dword [ebp - 0x74]
and ecx, dword [ebp - 0x70]
cmp ecx, 0xffffffff
jne 0x456bf8
cmp esi, dword [ebp - 0x138]
jl 0x456bf3
jg 0x456bdf
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebp - 0x13c]
jb 0x456bf3
cmp byte [ebp - 0x21], 0
jne 0x456bf3
push dword [ebp - 0x138]
push dword [ebp - 0x13c]
jmp 0x456c33
mov eax, ebx
cdq
jmp 0x456c31
cmp byte [ebp - 0x35], 0
jne 0x456c47
mov ecx, dword [ebp - 0x74]
mov eax, edi
mov edi, dword [ebp - 0x70]
cdq
add ecx, eax
adc edi, edx
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.00483340
mov ecx, eax
mov eax, dword [ebp + 0x24]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.004833f0
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
push edx
push eax
push esi
push dword [ebp + 0x48]
call fcn.00435337
add esp, 0x10
add dword [ebp + 0x48], eax
adc esi, edx
mov dword [ebp + 0x4c], esi
xor ecx, ecx
cmp dword [ebp + 0x40], ecx
jl 0x456c73
jg 0x456c55
cmp dword [ebp + 0x3c], ecx
jbe 0x456c73
cmp byte [ebp - 0x51], 0
jne 0x456c73
sub dword [ebp + 0x3c], eax
sbb dword [ebp + 0x40], edx
cmp dword [ebp + 0x40], ecx
jg 0x456c73
jl 0x456c6d
cmp dword [ebp + 0x3c], ecx
jae 0x456c73
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x40], ecx
cmp esi, ecx
jl 0x456c85
jg 0x456c7e
cmp dword [ebp + 0x48], ecx
jbe 0x456c85
mov edi, dword [ebp + 0x48]
mov ebx, esi
jmp 0x456c89
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x40], ecx
jl 0x456d28
jg 0x456c9d
cmp dword [ebp + 0x3c], ecx
jbe 0x456d28
mov eax, dword [ebp - 0x50]
and eax, dword [ebp - 0x4c]
cmp eax, 0xffffffff
jne 0x456cc3
push dword [ebp - 0x138]
add edi, dword [ebp + 0x3c]
push dword [ebp - 0x13c]
adc ebx, dword [ebp + 0x40]
push ebx
push edi
call fcn.00485a30
jmp 0x456d22
cmp byte [ebp - 0x35], 0
jne 0x456d28
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x4c]
cdq
mov esi, eax
mov eax, dword [ebp - 0x50]
add eax, esi
adc ecx, edx
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x104], edx
call fcn.00483340
push dword [ebp - 0x104]
push esi
push edx
push eax
call fcn.004833f0
push 0
push 0x200
push edx
push eax
call fcn.00483340
add edi, dword [ebp + 0x3c]
push edx
adc ebx, dword [ebp + 0x40]
push eax
push ebx
push edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
call fcn.00485a30
mov esi, dword [ebp + 0x4c]
sub dword [ebp + 0x3c], eax
sbb dword [ebp + 0x40], edx
cmp dword [ebp - 0xf0], 0
mov byte [ebp + 0x53], 0
mov byte [ebp + 0x46], 0
mov byte [ebp + 0x3b], 0
jl 0x456e58
jg 0x456d50
cmp dword [ebp - 0xf4], 0
jbe 0x456e58
mov ecx, dword [ebp + 0x3c]
sub ecx, dword [ebp - 0xb8]
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x40]
sbb edi, dword [ebp - 0xb4]
add ecx, dword [ebp + 0x48]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.00483340
and dword [ebp - 0x18c], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x10]
lea edi, [ebp - 0x188]
push dword [ebp + 0x54]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x16c]
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x46]
push eax
lea eax, [ebp + 0x53]
push eax
push dword [ebp - 0x168]
mov dword [ebp - 0xf4], ebx
push edi
mov dword [ebp - 0xf0], edx
call fcn.00435361
mov al, byte [ebp + 0x46]
add esp, 0x20
push 1
push dword [ebp + 0x10]
mov byte [ebp - 0x18b], al
mov al, byte [ebp + 0x3b]
push dword [ebp + 0x54]
mov byte [ebp - 0x18a], al
mov al, byte [ebp + 0x53]
mov byte [ebp - 0x189], al
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x46]
push eax
lea eax, [ebp + 0x53]
push eax
push 0
push 2
push dword [ebp - 0x168]
mov byte [ebp - 0x18c], 0
push edi
call fcn.004833f0
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.00435361
mov al, byte [ebp + 0x46]
mov byte [ebp - 0x187], al
mov al, byte [ebp + 0x3b]
mov byte [ebp - 0x186], al
mov al, byte [ebp + 0x53]
push 1
mov byte [ebp - 0x185], al
lea eax, [ebp - 0x18c]
push eax
push dword [ebp - 0x60]
mov byte [ebp - 0x188], 5
push dword [ebp - 0x64]
mov dword [ebp - 0x184], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x180], ebx
call fcn.0043c323
add esp, 0x34
mov eax, dword [ebp + 0x24]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
call fcn.00483340
test esi, esi
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], edx
jl 0x456ea7
jg 0x456e8c
xor eax, eax
cmp dword [ebp + 0x48], eax
jb 0x456ea9
push ebx
push edi
push esi
push dword [ebp + 0x48]
call fcn.00483340
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
xor eax, eax
jmp 0x456eb5
xor eax, eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
cmp dword [ebp + 0x40], eax
jl 0x456ed6
jg 0x456ec1
cmp dword [ebp + 0x3c], eax
jb 0x456ed6
push ebx
push edi
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
call fcn.00483340
mov dword [ebp - 0xbc], edx
jmp 0x456edc
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc0], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0x94]
mov edi, dword [ebp - 0x98]
setge al
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x52]
push dword [ebp + 0x54]
push eax
lea eax, [ebp - 0x57]
push eax
lea eax, [ebp + 0x34]
push eax
push ebx
push edi
call fcn.00435361
add esp, 0x20
test esi, esi
jl 0x456f38
jg 0x456f20
cmp dword [ebp + 0x48], 0
jbe 0x456f38
sub edi, dword [ebp - 0x1c4]
sbb ebx, dword [ebp - 0x1c0]
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x94], ebx
mov al, byte [ebp - 0x21]
mov byte [ebp + 0x53], al
movsx eax, al
push eax
push dword [ebp + 0x10]
lea eax, [ebp + 0x23]
push dword [ebp + 0x54]
push eax
lea eax, [ebp - 0x19]
push eax
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0xc0]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.00435361
add esp, 0x20
lea ecx, [ebp - 0x2c]
call fcn.00431c4c
mov eax, dword [ebp + 0x28]
mov edi, dword [ebp + 0x30]
lea esi, [eax + 0x200]
push 0x200
push esi
shl edi, 4
push eax
mov dword [ebp + 4], esi
lea ebx, [edi + esi]
call fcn.00410b58
add esp, 0xc
cmp dword [ebp - 0xf0], 0
jl 0x456fd8
jg 0x456fa9
cmp dword [ebp - 0xf4], 0
jb 0x456fd8
cmp dword [ebp + 0x30], 0
jle 0x456fc1
push edi
push 0
add esi, 0x1be
push esi
call fcn.004832e0
add esp, 0xc
push 0x30
pop eax
sub eax, edi
push eax
lea eax, [ebx + 0x1ce]
push 0
push eax
call fcn.004832e0
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [ebx + 0x1c2]
jne 0x456ffa
cmp byte [ebp + 0x3a], 2
jge 0x456ffa
cmp al, 5
je 0x45882a
cmp al, 0xf
je 0x45882a
cmp byte [ebp + 0x67], 0
mov esi, dword [ebx + 0x1c6]
mov edi, dword [ebx + 0x1ca]
jne 0x457070
test al, al
je 0x457070
xor ecx, ecx
cmp dword [ebp + 0x1c], ecx
je 0x457072
cmp byte [ebp + 0x3a], 2
jge 0x457072
cmp byte [ebp - 0x21], cl
jne 0x457072
cmp dword [ebp + 0x4c], ecx
jl 0x457048
jg 0x45702e
cmp dword [ebp + 0x48], ecx
jb 0x457048
xor eax, eax
cmp dword [ebp - 0x98], esi
jne 0x45882a
cmp dword [ebp - 0x94], eax
jne 0x45882a
cmp dword [ebp + 0x40], ecx
jl 0x457072
jg 0x457054
cmp dword [ebp + 0x3c], ecx
jb 0x457072
xor eax, eax
cmp dword [ebp - 0xc0], edi
jne 0x457066
cmp dword [ebp - 0xbc], eax
je 0x457072
cmp edi, ecx
jne 0x45882a
jmp 0x457072
xor ecx, ecx
cmp byte [ebp + 0x2f], 0
je 0x457094
xor edi, edi
xor esi, esi
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp + 0x1c]
cmp eax, ecx
jl 0x4570a1
mov byte [ebx + 0x1c2], al
mov eax, dword [ebp - 0x7c]
cmp ax, cx
jl 0x4570af
mov byte [ebx + 0x1be], al
cmp dword [ebp + 0x4c], ecx
jg 0x4570db
jl 0x4570bb
cmp dword [ebp + 0x48], ecx
jae 0x4570db
cmp dword [ebp + 0x40], ecx
jl 0x457154
jg 0x4570cf
cmp dword [ebp + 0x3c], ecx
jb 0x457154
mov eax, dword [ebp - 0xc0]
lea eax, [esi + eax - 1]
jmp 0x4570f1
cmp dword [ebp + 0x40], ecx
jg 0x457115
jl 0x4570e7
cmp dword [ebp + 0x3c], ecx
jae 0x457115
mov eax, dword [ebp - 0x98]
lea eax, [edi + eax - 1]
movsx ecx, byte [ebp + 0x53]
push ecx
push dword [ebp + 0x10]
lea ecx, [ebp + 0x23]
push dword [ebp + 0x54]
push ecx
lea ecx, [ebp - 0x19]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
push 0
push eax
call fcn.00435361
add esp, 0x20
xor ecx, ecx
cmp dword [ebp + 0x4c], ecx
jl 0x457148
jg 0x457121
cmp dword [ebp + 0x48], ecx
jb 0x457148
mov al, byte [ebp - 0x57]
mov byte [ebx + 0x1bf], al
mov al, byte [ebp - 0x52]
mov byte [ebx + 0x1c0], al
mov al, byte [ebp + 0x34]
mov byte [ebx + 0x1c1], al
mov eax, dword [ebp - 0x98]
mov dword [ebx + 0x1c6], eax
cmp dword [ebp + 0x40], ecx
jg 0x457160
jl 0x457154
cmp dword [ebp + 0x3c], ecx
jae 0x457160
cmp dword [ebp + 0x4c], ecx
jl 0x45717b
jg 0x457160
cmp dword [ebp + 0x48], ecx
jb 0x45717b
mov al, byte [ebp - 0x19]
mov byte [ebx + 0x1c3], al
mov al, byte [ebp + 0x23]
mov byte [ebx + 0x1c4], al
mov al, byte [ebp - 0x5c]
mov byte [ebx + 0x1c5], al
cmp dword [ebp + 0x40], ecx
jl 0x457193
jg 0x457187
cmp dword [ebp + 0x3c], ecx
jb 0x457193
mov eax, dword [ebp - 0xc0]
mov dword [ebx + 0x1ca], eax
cmp dword [ebp + 0x1c], ecx
jge 0x4571b6
cmp word [ebp - 0x7c], cx
jge 0x4571b6
cmp dword [ebp + 0x4c], ecx
jg 0x4571b6
jl 0x4571aa
cmp dword [ebp + 0x48], ecx
jae 0x4571b6
cmp dword [ebp + 0x40], ecx
jl 0x4571c9
jg 0x4571b6
cmp dword [ebp + 0x3c], ecx
jb 0x4571c9
mov eax, dword [ebp + 4]
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
jmp 0x4571cc
mov eax, dword [ebp + 4]
cmp word [ebp - 0x7c], cx
jge 0x4571fd
cmp dword [ebp + 0x1c], ecx
jge 0x4571fd
cmp dword [ebp + 0x4c], ecx
jg 0x4571fd
jl 0x4571e3
cmp dword [ebp + 0x48], ecx
jae 0x4571fd
cmp dword [ebp + 0x40], ecx
jg 0x4571fd
jl 0x4571ef
cmp dword [ebp + 0x3c], ecx
jae 0x4571fd
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
xor esi, esi
push esi
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
cmp eax, dword [ebp - 0x100]
jne 0x458864
cmp edx, dword [ebp - 0xfc]
jne 0x458864
mov eax, dword [ebp - 0x11c]
or eax, dword [ebp - 0x118]
mov dword [ebp + 0x54], 1
jne 0x45724d
push dword [ebp + 4]
call fcn.004353f3
pop ecx
mov edi, 0x200
push edi
push dword [ebp + 4]
push dword [ebp + 0x28]
call fcn.00437452
add esp, 0xc
test eax, eax
jne 0x457283
push esi
lea eax, [ebp - 0x34]
push eax
push edi
push dword [ebp + 4]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x54], eax
call fcn.004353db
pop ecx
cmp dword [ebp + 0x4c], esi
jl 0x457378
jg 0x457297
cmp dword [ebp + 0x48], edi
jb 0x457378
cmp dword [ebp + 0x40], 0
jl 0x457378
jg 0x4572ac
cmp dword [ebp + 0x3c], edi
jbe 0x457378
cmp byte [ebp - 0x53], 0
je 0x457378
mov esi, 0x200
push esi
push 0
push dword [ebp + 4]
call fcn.004832e0
add esp, 0xc
push 0
push esi
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.004833f0
mov edi, eax
mov ebx, edx
mov dword [ebp - 0x1ac], edi
add edi, dword [ebp - 0x6c]
mov dword [ebp - 0x1a8], ebx
adc ebx, dword [ebp - 0x68]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
cmp eax, dword [ebp - 0x1ac]
jne 0x457374
cmp edx, dword [ebp - 0x1a8]
jne 0x457374
push 0
lea eax, [ebp - 0x34]
push eax
push esi
push dword [ebp + 0x28]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov dword [ebp + 0x54], eax
je 0x457374
cmp dword [ebp - 0x34], esi
jne 0x457374
push esi
push dword [ebp + 4]
push dword [ebp + 0x28]
call fcn.00437452
add esp, 0xc
test eax, eax
jne 0x457378
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
cmp eax, dword [ebp - 0x1ac]
jne 0x457374
cmp edx, dword [ebp - 0x1a8]
jne 0x457374
push 0
lea eax, [ebp - 0x34]
push eax
push esi
push dword [ebp + 4]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x54], eax
jmp 0x457378
and dword [ebp + 0x54], 0
xor eax, eax
cmp dword [ebp + 0x54], eax
sete al
cmp byte [ebp + 0x5b], 0
mov esi, eax
mov dword [ebp + 4], esi
jne 0x457cac
cmp byte [ebp + 0x66], 0
jne 0x457cac
cmp byte [ebp + 0x44], 0
jne 0x457cac
lea ecx, [ebp + 0x14]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
test eax, eax
jmp 0x457e1c
cmp byte [ebp + 0x2f], 0
je 0x4573d9
mov byte [ebp - 5], 0
cmp byte [ebp + 0x53], 0
je 0x4573f3
cmp byte [ebp + 0x45], 0
jne 0x4573f3
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x24], eax
jmp 0x4573fa
mov dword [ebp + 0x24], 0x80
cmp byte [ebp - 0x55], 0
mov eax, dword [ebp + 0x3c]
mov edi, dword [ebp + 0x40]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edi
je 0x457422
add eax, dword [ebp + 0x48]
push 0
adc edi, dword [ebp + 0x4c]
sub eax, 1
pop edx
sbb edi, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edi
jmp 0x457424
xor edx, edx
cmp byte [ebp + 0x45], 0
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x9c], edx
je 0x4574bd
test byte [ebp - 0x1a], 0x10
je 0x457463
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], eax
sub eax, 1
mov dword [ebp - 0xc4], edi
sbb edi, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edi
cmp dword [ebp + 0x4c], edx
jg 0x45747a
jl 0x457470
cmp dword [ebp + 0x48], 1
jae 0x45747a
mov dword [ebp + 0x48], 1
mov dword [ebp + 0x4c], edx
sub eax, 1
mov ecx, edi
sbb ecx, edx
cmp ecx, edx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
jg 0x4574b5
jl 0x457498
cmp eax, 1
jae 0x4574b5
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc4]
sub eax, 2
sbb ecx, edx
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp + 0x48]
mov edx, dword [ebp + 0x4c]
jmp 0x4574bf
xor eax, eax
push dword [ebp - 0x68]
lea ecx, [ebp - 0xa0]
push dword [ebp - 0x6c]
push ecx
push edx
push eax
push esi
push dword [ebp + 0x24]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x14]
push eax
call fcn.0043bd1a
add esp, 0x24
cmp byte [ebp + 0x53], 0
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
jne 0x457508
or eax, edx
jne 0x457508
and dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 1
mov eax, dword [ebp + 0x24]
cmp dword [ebp + 0x60], eax
mov dword [ebp - 4], 1
jae 0x45753b
cmp dword [ebp + 0x18], eax
jge 0x45753b
mov ecx, dword [ebp + 0x60]
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x49c8c0
push ecx
call fcn.00431d19
add esp, 0xc
test eax, eax
jne 0x45753f
and dword [ebp - 4], 0
cmp dword [ebp - 0x9c], 0
jl 0x45882a
jg 0x45755b
cmp dword [ebp - 0xa0], 0x20
jb 0x45882a
cmp byte [ebp + 0x45], 0
je 0x457714
mov ecx, dword [ebp + 0x24]
cmp dword [ebp + 0x60], ecx
jae 0x45882a
lea eax, [ebx + esi]
mov dword [ebp - 4], eax
mov eax, ecx
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x4575b3
mov dword [ebp + 0x34], eax
push 0x1b3
push 0
push dword [ebp - 4]
call fcn.004832e0
mov eax, dword [ebp - 4]
push 0x4a
add eax, 0x1b4
push 0
push eax
call fcn.004832e0
add dword [ebp - 4], esi
add esp, 0x18
dec dword [ebp + 0x34]
jne 0x457587
push 0x5c
push 0
push ebx
call fcn.004832e0
push 8
push str.EFI_PART
push ebx
call fcn.00410b58
mov ecx, dword [ebp + 0x48]
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp - 0x9c]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x24], edx
mov edx, dword [ebp + 0x4c]
adc edx, 0
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x9c]
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 0x457634
push 0x10
push 0x49fb0c
push eax
call fcn.00410b58
add esp, 0xc
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x4c]
add eax, 1
push 0x5c
mov dword [ebx + 0x48], eax
mov eax, 0x80
push ebx
push dword [ebp - 0x14]
adc ecx, 0
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.00410b58
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebp - 0x14]
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 + 0x14]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.004832e0
add esp, 0x18
test edi, edi
jg 0x4576a0
jl 0x457698
cmp dword [ebp - 0x44], 1
jae 0x4576a0
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x40], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x14]
push 1
push dword [ebp + 0x10]
shl eax, 4
push dword [ebp + 0x54]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x4c]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x48]
call fcn.00435361
push 1
push dword [ebp + 0x10]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x54]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.00435361
mov eax, dword [ebp + 0x48]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0x44]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x457a38
cmp byte [ebp - 0x22], 0
je 0x457724
cmp dword [ebp + 0x60], 0
jl 0x457a38
cmp byte [ebp + 0x67], 0
je 0x45777f
or dword [ebp + 0x60], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x24], edi
mov byte [ebp - 5], 0
jbe 0x45777f
lea eax, [ebx + esi]
mov dword [ebp - 0x5c], eax
push 0x10
push 0x49c8c0
push dword [ebp - 0x5c]
call fcn.00431d19
add esp, 0xc
test eax, eax
je 0x457764
add dword [ebp - 0x5c], 0x80
inc edi
cmp edi, dword [ebp + 0x24]
jb 0x45773f
jmp 0x45777f
mov dword [ebp + 0x60], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.004832e0
add esp, 0xc
mov eax, dword [ebp + 0x24]
dec dword [ebp + 0x18]
cmp dword [ebp + 0x60], eax
jae 0x45882a
cmp dword [ebp + 0x18], eax
jge 0x45882a
cmp byte [ebp - 5], 0
je 0x4578a9
xor ecx, ecx
cmp byte [ebp + 0x53], cl
je 0x4577f7
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x24]
jae 0x4577f7
mov edx, dword [eax]
cmp edx, dword [ebp + 0x48]
jne 0x4577c0
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x4c]
je 0x4577c8
inc ecx
add eax, 0x80
jmp 0x4577ac
mov eax, dword [ebp + 0xc]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x49c8c0
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 0x4577f4
push 0x80
push 0
push eax
call fcn.004832e0
add esp, 0xc
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x60]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x49c8c0
push eax
mov dword [ebp - 0xb0], eax
call fcn.00431d19
add esp, 0xc
test eax, eax
je 0x457890
mov esi, dword [ebp + 0x60]
inc esi
cmp esi, dword [ebp + 0x24]
mov dword [ebp + 0x28], esi
jae 0x45882a
shl esi, 7
add esi, edi
push 0x10
push 0x49c8c0
push esi
call fcn.00431d19
add esp, 0xc
test eax, eax
je 0x457858
inc dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
add esi, 0x80
cmp eax, dword [ebp + 0x24]
jb 0x457831
jmp 0x457881
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x60]
jle 0x457881
mov edi, eax
mov eax, dword [ebp + 0xc]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x28]
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 0x457872
mov eax, dword [ebp + 0x24]
cmp dword [ebp + 0x28], eax
jae 0x45882a
mov esi, dword [ebp + 0xc]
push 0x80
push 0
push dword [ebp - 0xb0]
call fcn.004832e0
add esp, 0xc
and dword [ebp - 4], 0
mov eax, dword [ebp + 0x18]
xor ecx, ecx
cmp eax, ecx
jge 0x4579c9
cmp dword [ebp - 4], ecx
jne 0x4578e2
xor eax, eax
inc eax
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x150], ecx
jle 0x457906
mov edi, dword [ebp + 0x60]
mov eax, dword [ebp + 0xc]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x17c]
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 + 0xc]
xor ecx, ecx
cmp dword [ebp - 0x148], ecx
jle 0x45792c
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0xc]
shl ecx, 7
add eax, ebx
lea edi, [ecx + eax + 0x10]
lea esi, [ebp - 0x1f0]
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 + 0xc]
xor ecx, ecx
cmp dword [ebp - 0x134], ecx
jle 0x45794b
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x48]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x20], edi
mov edi, dword [ebp + 0x4c]
mov dword [edx + eax + 0x24], edi
cmp dword [ebp - 0x140], ecx
jle 0x45796a
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp - 0x44]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0x40]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0x14c], ecx
jle 0x45798e
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x128]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0x124]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0x154], ecx
jle 0x457a12
mov eax, dword [ebp - 0x3c]
cmp word [eax], 0
je 0x457a12
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0xc]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.004832e0
add esp, 0xc
push 0x24
push dword [ebp - 0x3c]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x457a12
cmp eax, dword [ebp + 0x60]
je 0x457a12
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0xc]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x308]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x18]
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 + 0x18]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x308]
rep movsd dword es:[edi], dword [esi]
jge 0x457a12
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0x2f], 0
je 0x457a35
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0xc]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.004832e0
add esp, 0xc
mov esi, dword [ebp + 0xc]
xor eax, eax
cmp byte [ebp - 0x22], al
mov dword [ebp - 4], eax
je 0x457b33
cmp byte [ebp + 0x45], al
jne 0x457b33
cmp dword [ebp + 0x24], eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x54], eax
jle 0x457b33
lea eax, [ebx + esi]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x10], eax
mov edi, 0x80
push 0x10
push 0x49c8c0
push dword [ebp + 0x28]
call fcn.00431d19
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x457a94
mov ecx, dword [ebp + 0x54]
cmp ecx, dword [ebp + 0x30]
jne 0x457a94
and dword [ebp + 0x34], 0
jmp 0x457a9b
mov dword [ebp + 0x34], 1
and dword [ebp - 0x5c], 0
test al, al
jne 0x457adf
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x30]
je 0x457ad9
mov esi, dword [ebp + 0x28]
push 0x10
push esi
push esi
call fcn.00437452
mov edi, dword [ebp + 0x10]
add esp, 0xc
inc dword [ebp + 0x30]
add dword [ebp + 0x10], 0x80
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x5c], eax
mov edi, 0x80
jmp 0x457adf
inc dword [ebp + 0x30]
add dword [ebp + 0x10], edi
cmp dword [ebp + 0x34], 0
je 0x457b14
mov eax, dword [ebp + 0x28]
lea ecx, [eax + 0x80]
jmp 0x457af9
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x457aff
cmp eax, ecx
jb 0x457af0
jmp 0x457b06
mov dword [ebp - 0x5c], 1
push edi
push 0
push dword [ebp + 0x28]
call fcn.004832e0
add esp, 0xc
cmp dword [ebp - 0x5c], 0
je 0x457b21
mov eax, dword [ebp + 0x54]
inc eax
mov dword [ebp - 4], eax
inc dword [ebp + 0x54]
mov eax, dword [ebp + 0x54]
add dword [ebp + 0x28], edi
cmp eax, dword [ebp + 0x24]
jl 0x457a6c
push dword [ebp + 0x14]
call fcn.004353f3
lea eax, [ebx - 0x174]
push eax
call fcn.004353f3
mov eax, dword [ebp + 0x60]
cmp dword [ebp - 4], eax
pop ecx
pop ecx
jg 0x457b55
inc eax
mov dword [ebp - 4], eax
cmp byte [ebp + 0x45], 0
mov eax, dword [ebp + 0x24]
je 0x457b61
mov dword [ebp - 4], eax
xor edi, edi
push edi
shl eax, 7
push edi
push eax
lea eax, [ebx + esi]
push eax
call fcn.00476f85
mov ecx, dword [ebp - 0x14]
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 + 0x34], eax
ja 0x458897
xor eax, eax
push eax
push eax
push dword [ebp + 0x34]
push ebx
call fcn.00476f85
mov edi, dword [ebp - 0x14]
mov dword [ebx + 0x10], eax
and dword [edi + 0x10], 0
push 0
xor eax, eax
push eax
push dword [ebp + 0x34]
push edi
call fcn.00476f85
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 4]
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 + 0x45], 0
je 0x457bf5
push 0
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
push esi
push dword [ebp + 0x14]
lea ecx, [ebp + 0x6c]
call fcn.00431baf
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x110]
push dword [ebp - 0x114]
call fcn.004833f0
add eax, dword [ebp - 0x6c]
adc edx, dword [ebp - 0x68]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
lea eax, [edi + esi]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.00431baf
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x9c]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.004833f0
add eax, dword [ebp - 0x6c]
adc edx, dword [ebp - 0x68]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x6c]
call fcn.00431baf
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
call fcn.004833f0
add eax, dword [ebp - 0x6c]
adc edx, dword [ebp - 0x68]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
push esi
push dword [ebp - 0x14]
lea ecx, [ebp + 0x6c]
call fcn.00431baf
mov al, byte [ebp + 0x66]
or al, byte [ebp + 0x5b]
or al, byte [ebp + 0x44]
je 0x4588c0
and dword [ebp + 0x54], 0
lea ecx, [ebp + 0x14]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
mov bl, byte [ebp + 0x39]
xor edi, edi
cmp dword [ebp - 0xc], edi
jl 0x457d48
cmp bl, 0x20
je 0x457cd4
cmp bl, 0x10
jne 0x457cda
cmp dword [ebp - 0x20], 0xb
je 0x457cfe
test byte [ebp + 0x5b], 0x20
jne 0x457cfe
cmp byte [ebp + 0x5b], 0
je 0x457cec
cmp dword [ebp - 0x20], 0xb
je 0x457cfe
test byte [ebp + 0x66], 0x20
jne 0x457cfe
cmp byte [ebp + 0x66], 0
je 0x457d48
cmp dword [ebp - 0x20], 0xb
jne 0x457d48
test byte [0x4b0240], 0x20
jne 0x457d19
test byte [ebp + 0x68], 0x20
jne 0x457d19
push 1
push dword [ebp - 0xc]
call fcn.00448890
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4b0240], 0x10
jne 0x457d44
test byte [ebp + 0x68], 0x11
jne 0x457d44
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0xc]
call fcn.0040441d
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x44], 0
jne 0x457d5e
cmp bl, 1
je 0x457d5e
cmp bl, 0x20
je 0x457d5e
cmp byte [ebp + 0x5b], 0
je 0x457da2
push dword [ebp + 0x6c]
call fcn.004353db
pop ecx
push edi
lea eax, [ebp - 0x144]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x144], edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x457d8f
xor eax, eax
jmp 0x457d95
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp bl, 1
je 0x457d9f
cmp bl, 0x20
jne 0x457da2
mov dword [ebp + 4], eax
lea ecx, [ebp + 0x6c]
call fcn.00402b75
xor eax, eax
test byte [ebp + 0x66], 0x20
jne 0x457dc8
cmp byte [ebp + 0x66], al
je 0x457dbd
cmp dword [ebp - 0x20], 0xb
je 0x457dc8
cmp bl, 0x10
jne 0x457dec
cmp dword [ebp - 0x20], 0xc
je 0x457dec
lea ecx, [ebp + 0x68]
call fcn.00435414
push 0x4989b8
push 1
push edi
push dword [ebp - 0xa4]
call fcn.0043b817
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x52], 0
je 0x457dfb
cmp dword [ebp + 0x54], edi
jne 0x455d8e
cmp bl, 0x10
mov esi, eax
je 0x457e05
mov esi, dword [ebp + 4]
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, edi
je 0x458a1b
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x458a1b
cmp dword [ebp - 0x10], ebx
jge 0x457e62
mov eax, dword [ebp - 0x8c]
cmp word [eax], bx
jne 0x457e62
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, ebx
jmp 0x458851
mov edi, dword [ebp - 0x88]
mov dword [ebp + 0x18], 0x1b8
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], ebx
cmp word [edi], bx
je 0x457fab
push edi
push 0x49fb08
call fcn.00432c89
test al, al
pop ecx
pop ecx
jne 0x457fab
push edi
push 0x49b1d4
call fcn.00432c89
test al, al
pop ecx
pop ecx
jne 0x457fab
push edi
push 0x49fb04
call fcn.00432c89
test al, al
pop ecx
pop ecx
je 0x457ed8
mov dword [ebp - 0x20], 0x4ae308
mov dword [ebp + 0x18], 0x190
jmp 0x457fcb
push edi
push 0x49fb00
call fcn.00432c89
test al, al
pop ecx
pop ecx
je 0x457efc
mov dword [ebp - 0x20], 0x4ae498
mov dword [ebp + 0x18], 0x180
jmp 0x457fcb
mov dword [ebp + 0x18], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], esi
jne 0x457f33
lea eax, [ebp - 0x64]
push eax
inc edi
lea eax, [ebp - 0x88]
inc edi
push eax
mov dword [ebp - 0x88], edi
call fcn.0043bfa0
mov edi, dword [ebp - 0x88]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x457f33
inc edi
inc edi
cmp word [edi], 0x23
jne 0x457f71
push edi
lea ecx, [ebp + 0x34]
call fcn.004419bc
push ebx
lea eax, [ebp - 0x164]
push eax
push str.EXEDATA
push dword [ebp + 0x34]
push ebx
call fcn.00411356
add esp, 0x14
lea ecx, [ebp + 0x34]
mov dword [ebp - 0x20], eax
call fcn.00431c4c
mov eax, dword [ebp - 0x160]
mov dword [ebp + 0x18], eax
jmp 0x457f88
lea eax, [ebp + 0x18]
push eax
push ebx
push edi
call fcn.0040c6ab
add esp, 0xc
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x164], eax
cmp dword [ebp - 0x60], ebx
jl 0x457fb9
jg 0x457f94
cmp dword [ebp - 0x64], ebx
jb 0x457fb9
cmp ebx, dword [ebp - 0x60]
jl 0x457fb9
jg 0x457fa3
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp - 0x64]
jbe 0x457fb9
mov eax, dword [ebp - 0x64]
mov dword [ebp + 0x18], eax
jmp 0x457fb9
mov dword [ebp - 0x20], 0x4ae618
mov dword [ebp + 0x18], 0x1b8
cmp dword [ebp + 0x18], ebx
jbe 0x458161
cmp dword [ebp - 0x20], ebx
je 0x458161
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.00404863
cmp dword [ebp + 0x6c], ebx
je 0x458161
mov esi, dword [ebp + 0x18]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00437072
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x84]
add edi, 0x200
and edi, 0xfffffe00
lea eax, [edi + esi]
mov dword [ebp + 0x28], eax
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0x80]
je 0x458047
push ebx
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
cmp eax, dword [ebp - 0x6c]
jne 0x45813a
cmp edx, dword [ebp - 0x68]
jne 0x45813a
push ebx
lea eax, [ebp - 0x34]
push eax
push esi
push dword [ebp + 0x28]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45813a
push esi
push dword [ebp + 0x28]
push edi
call fcn.00410b58
mov eax, dword [ebp + 0x18]
add esp, 0xc
cmp eax, 0x1b8
jle 0x45808f
mov eax, 0x1b8
push eax
push dword [ebp - 0x20]
push dword [ebp + 0x28]
call fcn.00410b58
mov eax, dword [ebp + 0x28]
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov eax, dword [ebp + 0x18]
add esp, 0xc
cmp eax, 0x200
jbe 0x4580d9
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x20]
add eax, 0x200
push eax
mov eax, dword [ebp + 0x28]
add eax, 0x200
push eax
call fcn.00410b58
add esp, 0xc
push esi
push dword [ebp + 0x28]
push edi
call fcn.00437452
add esp, 0xc
test eax, eax
jne 0x458127
push ebx
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x10
cmp eax, dword [ebp - 0x6c]
jne 0x45813a
cmp edx, dword [ebp - 0x68]
jne 0x45813a
push ebx
lea eax, [ebp - 0x34]
push eax
push esi
push dword [ebp + 0x28]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.004353db
cmp esi, ebx
pop ecx
je 0x45813a
lea ecx, [ebp - 0x3c]
call fcn.00431c4c
lea ecx, [ebp - 0x164]
jmp 0x4587d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, ebx
jne 0x458149
xor esi, esi
inc esi
lea ecx, [ebp - 0x3c]
call fcn.00431c4c
lea ecx, [ebp - 0x164]
call fcn.00431c4c
jmp 0x458785
lea ecx, [ebp - 0x164]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, ebx
jmp 0x45888b
cmp dword [ebp + 0x60], ebx
jle 0x457e3e
cmp dword [ebp - 0x10], ebx
jge 0x4581ad
mov eax, dword [ebp - 0x8c]
cmp word [eax], bx
je 0x457e3e
xor eax, eax
cmp dword [ebp - 0x10], ebx
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], eax
mov dword [ebp + 0x34], esi
jge 0x4581cc
xor al, al
jne 0x4581fb
jmp 0x457e3e
push dword [ebp - 0x90]
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0x28]
lea eax, [ebp + 8]
push dword [ebp + 0x60]
push dword [ebp - 0x10]
push eax
call fcn.00447f00
add esp, 0x1c
cmp dword [ebp + 0x34], ebx
jle 0x45816c
mov eax, dword [ebp - 0x48]
mov dword [ebp + 0x1c], edi
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x104], ebx
cmp word [eax], bx
je 0x45836c
push eax
push 0x49fb08
call fcn.00432c89
test al, al
pop ecx
pop ecx
jne 0x45836c
push dword [ebp - 0x48]
push 0x49b1d4
call fcn.00432c89
test al, al
pop ecx
pop ecx
jne 0x45836c
mov edi, dword [ebp - 0x48]
push edi
push 0x49fb00
call fcn.00432c89
test al, al
pop ecx
pop ecx
je 0x458263
push 8
jmp 0x45836e
push edi
push str.nt6fat
call fcn.00432c89
test al, al
pop ecx
pop ecx
jne 0x458368
push edi
push str.winfat
call fcn.00432c89
test al, al
pop ecx
pop ecx
jne 0x458368
push edi
push 0x49fb04
call fcn.00432c89
test al, al
pop ecx
pop ecx
je 0x4582a5
push 6
jmp 0x45836e
push edi
push str.nt5fat
call fcn.00432c89
test al, al
pop ecx
pop ecx
je 0x4582bd
push 5
jmp 0x45836e
mov dword [ebp + 0x1c], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], esi
jne 0x4582eb
lea eax, [ebp - 0x64]
push eax
inc edi
lea eax, [ebp - 0x48]
inc edi
push eax
mov dword [ebp - 0x48], edi
call fcn.0043bfa0
mov edi, dword [ebp - 0x48]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x4582eb
inc edi
inc edi
cmp word [edi], 0x23
jne 0x458329
push edi
lea ecx, [ebp + 0x34]
call fcn.004419bc
push ebx
lea eax, [ebp - 0x10c]
push eax
push str.EXEDATA
push dword [ebp + 0x34]
push ebx
call fcn.00411356
add esp, 0x14
lea ecx, [ebp + 0x34]
mov dword [ebp + 0x30], eax
call fcn.00431c4c
mov eax, dword [ebp - 0x108]
mov dword [ebp + 0x1c], eax
jmp 0x458340
lea eax, [ebp + 0x1c]
push eax
push ebx
push edi
call fcn.0040c6ab
add esp, 0xc
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x60], ebx
jl 0x458361
jg 0x45834c
cmp dword [ebp - 0x64], ebx
jb 0x458361
cmp ebx, dword [ebp - 0x60]
jl 0x458361
jg 0x45835b
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp - 0x64]
jbe 0x458361
mov eax, dword [ebp - 0x64]
mov dword [ebp + 0x1c], eax
cmp dword [ebp + 0x30], ebx
jne 0x458397
jmp 0x4583c4
push 7
jmp 0x45836e
push 9
pop eax
push ebx
lea ecx, [ebp - 0x10c]
push ecx
push 0x49826c
push eax
push ebx
call fcn.00411356
add esp, 0x14
cmp dword [ebp + 0x1c], ebx
mov dword [ebp + 0x30], eax
je 0x4583c4
mov eax, dword [ebp - 0x108]
mov dword [ebp + 0x1c], eax
cmp dword [ebp + 0x1c], ebx
jbe 0x4583c4
cmp dword [ebp + 0x30], ebx
je 0x4583c4
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xa4]
lea ecx, [ebp + 0x6c]
call fcn.00404863
cmp dword [ebp + 0x6c], ebx
jne 0x4583cf
lea ecx, [ebp - 0x10c]
jmp 0x458167
push 0
push 0x200
push dword [ebp - 0x80]
push dword [ebp - 0x84]
call fcn.004833f0
mov ebx, eax
add ebx, dword [ebp - 0x128]
mov esi, edx
adc esi, dword [ebp - 0x124]
push 0
push esi
push ebx
push dword [ebp + 0x6c]
mov dword [ebp - 0x1a0], esi
call fcn.00432bc3
add esp, 0x10
cmp eax, ebx
jne 0x458411
cmp edx, esi
je 0x458440
lea ecx, [ebp - 0x10c]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
test eax, eax
jmp 0x45888b
mov esi, dword [ebp + 0x1c]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00437072
mov eax, dword [ebp - 0x2c]
add eax, 0x200
and eax, edi
push 0
lea edi, [eax + esi]
mov dword [ebp + 0x34], eax
lea eax, [ebp - 0x34]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4584af
push esi
push edi
push dword [ebp + 0x34]
call fcn.00410b58
push 0
push dword [ebp - 0x1a0]
push ebx
push dword [ebp + 0x6c]
call fcn.00432bc3
add esp, 0x1c
cmp eax, ebx
jne 0x4584af
cmp edx, dword [ebp - 0x1a0]
je 0x4584bc
lea ecx, [ebp - 0x2c]
call fcn.00431c4c
jmp 0x458411
mov ebx, dword [ebp + 0x1c]
push 3
push dword [ebp + 0x30]
push edi
call fcn.00410b58
mov eax, 0x1fe
add esp, 0xc
cmp ebx, eax
jle 0x4584d8
mov ebx, eax
add ebx, 0xffffffe2
push ebx
mov ebx, dword [ebp + 0x30]
lea eax, [ebx + 0x1e]
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.00410b58
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x1c]
add esp, 0xc
cmp eax, 0x200
jbe 0x458523
add eax, 0xfffffe00
push eax
add ebx, 0x200
lea eax, [edi + 0x200]
push ebx
push eax
call fcn.00410b58
add esp, 0xc
push esi
push edi
push dword [ebp + 0x34]
xor ebx, ebx
inc ebx
call fcn.00437452
add esp, 0xc
test eax, eax
jne 0x458552
push eax
lea eax, [ebp - 0x34]
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.004353db
pop ecx
xor eax, eax
test ebx, ebx
sete al
lea ecx, [ebp - 0x2c]
mov esi, eax
call fcn.00431c4c
lea ecx, [ebp - 0x10c]
jmp 0x4573a6
push 0x103c
lea ecx, [ebp + 8]
call fcn.004371c5
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ebp + 8]
mov ax, word [ecx]
add esi, 0x2000
cmp ax, bx
mov edi, 0x4989b8
je 0x4585d7
cmp word [ecx + 2], 0x3a
jne 0x4585d7
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 0x4585cb
cmp dword [ebp - 0x78], 0x10
jne 0x45861c
mov edi, 0x498998
cmp eax, 5
jne 0x45861c
mov edi, 0x4989a8
jmp 0x45861c
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jl 0x45861c
cmp dword [ebp - 0x78], 8
jne 0x4585f8
push eax
push str..CDROM_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov edi, 0x4989a8
jmp 0x458619
cmp dword [ebp - 0x78], 0x10
jne 0x45860c
and eax, 0xfff
mov esi, eax
mov edi, 0x498998
jmp 0x45861c
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 + 8]
push esi
call fcn.0043b817
add esp, 0x10
jmp 0x4589dd
cmp byte [ebp + 1], 0
je 0x45863f
cmp dword [ebp - 0xc], ebx
jl 0x458999
mov al, byte [ebp + 2]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0xc]
or eax, dword [ebp - 0xf8]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00447b4e
pop ecx
pop ecx
jmp 0x458999
cmp dword [ebp - 0xc], ebx
jl 0x458999
cmp byte [ebp - 0x2e], 0
je 0x45867d
cmp dword [ebp + 0x60], ebx
jl 0x458999
movsx eax, byte [ebp + 2]
or eax, dword [ebp - 0x28]
jmp 0x458746
mov eax, dword [ebp - 0xe4]
mov ax, word [eax]
movzx esi, ax
cmp esi, 0x61
jl 0x4586a2
cmp esi, 0x7a
jg 0x4586a2
sub esi, 0x20
cmp esi, 0x41
jl 0x458999
cmp esi, 0x5a
jg 0x458999
cmp dword [ebp - 0x78], ebx
jle 0x45872b
push 0x488
lea ecx, [ebp - 0x3c]
call fcn.00437072
mov edi, dword [ebp - 0x3c]
push 0x288
add edi, 0x200
push ebx
push edi
call fcn.004832e0
mov eax, esi
shl eax, 0x10
or eax, dword [ebp - 0x78]
push eax
push dword [ebp - 0x3c]
push edi
call fcn.00447808
lea eax, [esi + esi*2 - 0xc3]
lea edi, [edi + eax*8]
add esp, 0x18
cmp dword [edi + 8], ebx
jle 0x45871e
push 0x64
lea ecx, [ebp + 8]
call fcn.004371c5
push esi
push dword [edi + 4]
push str._d__c:
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0x3c]
call fcn.00431c4c
jmp 0x458999
mov ecx, dword [ebp + 8]
mov word [ecx], ax
mov eax, dword [ebp + 8]
cmp word [eax], bx
je 0x458999
mov eax, dword [ebp - 0x28]
and eax, 0xfffffffd
or eax, 0xc
push dword [ebp - 0x90]
push ebx
push ebx
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 8]
push dword [ebp - 0xc]
push eax
call fcn.00447f00
add esp, 0x1c
jmp 0x458999
push dword [ebp + 0x60]
lea eax, [ebp + 8]
push dword [ebp - 0x10]
push eax
call fcn.0040422a
add esp, 0xc
jmp 0x458999
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, ebx
jmp 0x457e1c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, ebx
jmp 0x455dd4
lea ecx, [ebp - 0x18]
call fcn.00431c4c
jmp 0x4589f1
lea ecx, [ebp - 0x18]
jmp 0x458417
lea ecx, [ebp - 0x18]
jmp 0x45882d
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, ebx
je 0x455d54
push eax
jmp 0x455d4e
lea ecx, [ebp - 0x2c]
call fcn.00431c4c
lea ecx, [ebp + 0x14]
jmp 0x458417
lea ecx, [ebp - 0x2c]
call fcn.00431c4c
lea ecx, [ebp + 0x14]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
test eax, eax
je 0x45885a
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x458a1b
lea ecx, [ebp + 0x14]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, esi
je 0x455cc9
push eax
jmp 0x455cc3
lea ecx, [ebp + 0x14]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, edi
jmp 0x458851
lea ecx, [ebp + 0x14]
call fcn.00431c4c
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
test eax, eax
jmp 0x458a10
push 0x1000
lea ecx, [ebp + 8]
call fcn.004371c5
cmp dword [ebp - 0x10], ebx
jl 0x458973
push 0x488
lea ecx, [ebp + 0x34]
call fcn.00437072
mov edi, dword [ebp + 0x34]
push 0x288
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.004832e0
push dword [ebp - 0x78]
push edi
push esi
call fcn.00447808
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x10]
cmp dword [eax], ecx
je 0x458944
inc edi
add eax, 0x18
cmp edi, 0x1a
jle 0x458932
jmp 0x45896b
push 0x64
lea ecx, [ebp + 8]
call fcn.004371c5
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 + 8]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x34]
jmp 0x458721
cmp byte [ebp + 1], 0
jne 0x458999
cmp byte [ebp + 0x51], 4
mov eax, 0x4989a8
je 0x458989
mov eax, 0x498998
push eax
push ebx
push dword [ebp + 8]
push dword [ebp - 0x10]
call fcn.0043b817
add esp, 0x10
cmp dword [ebp - 0x158], ebx
jle 0x4589dd
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp + 8]
dec ecx
mov dword [ebp - 0x144], ecx
push ebx
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x120]
push eax
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x144]
push eax
mov dword [ebp + 8], ebx
call fcn.0043998b
lea ecx, [ebp - 0xb0]
call fcn.00431c4c
push dword [ebp + 8]
mov ecx, dword [ebp - 0x120]
push dword [ebp - 0xac]
call fcn.00436b54
lea ecx, [ebp + 0x5c]
call fcn.00431c4c
lea ecx, [ebp + 0x68]
call fcn.00435414
lea ecx, [ebp + 0x6c]
call fcn.00402b75
mov eax, 0x4b02a8
cmp eax, ebx
je 0x458a19
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
lea ecx, [ebp - 0x8c]
call fcn.00431c4c
lea ecx, [ebp - 0xac]
call fcn.00431c4c
lea ecx, [ebp - 0xe4]
call fcn.00431c4c
lea ecx, [ebp - 0x1c8]
call fcn.00431c4c
lea ecx, [ebp + 8]
call fcn.00431c4c
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8