Function at 0x459afe
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, 0x3bc
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0xbc], ecx
call fcn.00437e65
pop ecx
push 5
lea ecx, [ebp - 4]
call fcn.0043dd9c
push 0x14
lea ecx, [ebp - 0x1dc]
call fcn.0043dd9c
lea ecx, [ebp - 0x108]
call fcn.0043dd7e
lea ecx, [ebp - 0xb8]
call fcn.0043dd7e
lea ecx, [ebp - 0xb4]
call fcn.0043dd7e
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x44], eax
push 0x2c
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x44]
push eax
mov dword [ebp], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0x28], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0x124], ebx
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], esi
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x130], esi
mov byte [ebp - 0x55], bl
mov byte [ebp - 0x21], bl
mov byte [ebp - 0x99], bl
mov byte [ebp - 0x84], bl
mov byte [ebp + 0x5b], bl
mov byte [ebp + 0x47], bl
mov byte [ebp - 0x2a], bl
mov byte [ebp - 0x79], bl
mov byte [ebp - 0x4a], bl
mov dword [ebp - 0xa0], ebx
call fcn.004408ab
mov eax, dword [ebp - 0xb8]
mov word [eax], bx
mov eax, dword [ebp - 0x44]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x459c43
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x44], eax
push 0x2c
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004408ab
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x19], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp - 0x82], 0xff
mov byte [ebp + 7], 0
mov byte [ebp - 0x4d], 0
mov byte [ebp - 0x81], 0
mov byte [ebp + 0x1a], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x27], 0
mov byte [ebp + 0x5c], 0
mov byte [ebp + 0x5d], 0
mov byte [ebp + 0x5e], 0
mov byte [ebp - 0x4f], 0
mov byte [ebp - 0x2c], 0xff
mov byte [ebp - 5], 0xff
mov byte [ebp - 0x29], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x60], 0
mov byte [ebp - 6], 0
mov dword [ebp - 0x64], 0xfffff000
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0xf0], esi
je 0x45a614
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459ceb
or byte [ebp + 0x19], 1
jmp 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459d0b
or byte [ebp + 0x19], 2
jmp 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459d2e
or byte [ebp - 0x122], 1
jmp 0x45a590
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459d51
or byte [ebp - 0x122], 2
jmp 0x45a590
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.0043fbfd
add esp, 0xc
test al, al
jne 0x45a5c2
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0043fbfd
add esp, 0xc
test al, al
jne 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459da7
or dword [ebp - 0x34], 1
jmp 0x45a590
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459dc9
or dword [ebp - 0x34], 2
jmp 0x45a590
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4afa74
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459de9
or dword [ebp - 0x34], 0x10
jmp 0x45a590
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459e08
or dword [ebp - 0x34], edi
jmp 0x45a590
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4afa68
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459e28
mov byte [ebp + 0x27], 1
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459e47
mov byte [ebp + 0x5c], 1
jmp 0x45a590
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459e67
mov byte [ebp + 0x5c], 0x21
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459e86
mov byte [ebp + 0x5d], 1
jmp 0x45a590
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459ea6
mov byte [ebp + 0x5d], 0x21
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459ec5
mov byte [ebp + 0x5e], 1
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._gptmini
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459ee4
mov byte [ebp + 0x5e], 2
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpth
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459f03
mov byte [ebp + 0x5e], 4
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459f25
mov byte [ebp - 0x84], 1
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459f44
mov byte [ebp - 0x4f], 1
jmp 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4a9ba4
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459f67
mov byte [ebp - 0x99], 1
jmp 0x45a590
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4afa20
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459f87
mov byte [ebp - 0x79], 1
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._img
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459fa6
mov byte [ebp - 0x4a], 1
jmp 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459fc6
or byte [ebp - 0x2a], 0x40
jmp 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x459fe6
mov byte [ebp + 0x47], 3
jmp 0x45a590
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a005
inc edi
mov byte [ebp + 0x47], 3
inc edi
jmp 0x45a01d
push 6
push edi
push str._lock:
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a085
mov byte [ebp + 0x47], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x45a056
mov eax, ecx
call fcn.00437e2d
test al, al
jne 0x45a056
push ecx
call fcn.004129ca
add esp, 4
test al, al
jne 0x45a056
lea eax, [ebp + 0x78]
push eax
mov dword [ebp], edi
call fcn.00405172
jmp 0x45a1b8
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0046fb37
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0046fb37
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
pop ecx
jmp 0x45a590
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a0a5
mov byte [ebp + 0x47], 1
jmp 0x45a590
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.0043fbfd
add esp, 0xc
test al, al
jne 0x459fdd
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a0e6
mov byte [ebp + 0x47], 0xf0
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
jmp 0x45a590
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x4af9d8
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a148
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45a119
cmp ax, 0x3d
je 0x45a119
call fcn.00437e2d
test al, al
je 0x45a148
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0xb0], ebx
je 0x45a134
mov dword [ebp - 0x18], 0x4af9d0
jmp 0x45a076
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
jmp 0x45a1ae
push 4
push edi
push str._pbr
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a1d1
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45a178
cmp ax, 0x3d
je 0x45a178
call fcn.00437e2d
test al, al
je 0x45a1d1
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x18], ebx
push eax
je 0x45a19d
mov dword [ebp - 0xb0], 0x4a75aa
call fcn.00405172
pop ecx
jmp 0x45a076
add dword [ebp + 0x78], 2
call fcn.00437e65
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405172
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x45a076
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x45a076
push 9
push edi
push str._alignend
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a258
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45a201
cmp ax, 0x3d
je 0x45a201
call fcn.00437e2d
test al, al
je 0x45a258
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x45a249
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.004129ca
add esp, 4
test al, al
je 0x45a574
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp + 0x28], ecx
call fcn.004428d3
cmp dword [ebp - 0x70], ebx
pop ecx
pop ecx
jg 0x45a574
jl 0x45a249
cmp dword [ebp - 0x74], ebx
ja 0x45a574
mov dword [ebp - 0x74], 0xfffffffe
mov dword [ebp - 0x70], esi
jmp 0x45a574
push 6
push edi
push str._align
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a306
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45a28c
cmp ax, 0x3d
je 0x45a28c
call fcn.00437e2d
test al, al
je 0x45a306
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.00405172
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x45a2bc
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
jmp 0x45a590
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.004129ca
add esp, 4
test al, al
je 0x45a590
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp + 0x28]
push eax
mov dword [ebp + 0x28], ecx
call fcn.004428d3
cmp dword [ebp - 0x90], ebx
pop ecx
pop ecx
jg 0x45a590
jl 0x45a2ab
cmp dword [ebp - 0x94], ebx
ja 0x45a590
jmp 0x45a2ab
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a32b
mov byte [ebp - 0x82], 1
jmp 0x45a590
push edi
lea eax, [ebp + 0x78]
push eax
push str._clean
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a34a
mov byte [ebp - 5], 1
jmp 0x45a590
push 7
lea eax, [ebp + 0x78]
push eax
push str._clean_
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a36a
mov byte [ebp - 5], 0
jmp 0x45a590
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4aa0e0
call fcn.0043fbfd
add esp, 0xc
test al, al
jne 0x45a58c
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0043fbfd
add esp, 0xc
test al, al
jne 0x45a58c
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a3c4
or dword [ebp - 0x34], 0x20
mov byte [ebp - 0x4d], 1
jmp 0x45a590
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a3fd
add dword [ebp + 0x78], 0xc
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044957c
test eax, eax
pop ecx
pop ecx
jl 0x45bda2
mov byte [ebp - 6], 1
jmp 0x45a590
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a49c
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x20], edi
call fcn.00405196
xor eax, eax
mov ax, word [edi]
push eax
call fcn.004129ca
add esp, 0xc
test al, al
je 0x45a457
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004428d3
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x3a
jne 0x45a476
add dword [ebp - 0x20], 2
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004428d3
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x3a
jne 0x45a590
add dword [ebp - 0x20], 2
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004428d3
jmp 0x45a586
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.0043917b
add esp, 0xc
test al, al
jne 0x45a59c
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a4fa
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0xc], 0x42
call fcn.0044957c
mov al, byte [ebp - 0xc]
add esp, 0xc
mov byte [ebp - 0x60], al
jmp 0x45a590
push 4
push dword [ebp + 0x78]
push str._iv
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45a526
add dword [ebp + 0x78], 8
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044957c
jmp 0x45a586
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a548
mov dword [ebp - 0xa0], 8
jmp 0x45a590
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a56b
mov dword [ebp - 0xa0], 0x10
jmp 0x45a590
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x45a59c
lea eax, [ebp + 0x78]
push eax
call fcn.00405172
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
pop ecx
jmp 0x45a07f
mov byte [ebp + 7], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x459ccb
cmp dword [ebp - 0x74], 0xfffffffe
jne 0x45a603
cmp dword [ebp - 0x70], esi
jne 0x45a603
mov eax, dword [ebp - 0x94]
cmp eax, 0xfffffff7
jne 0x45a5f7
cmp dword [ebp - 0x90], esi
jne 0x45a5f7
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
jmp 0x45a614
push str.21:INDATA
lea ecx, [ebp - 0x60]
call fcn.00446497
push dword [ebp + 0x78]
lea ecx, [ebp - 0x60]
call fcn.0043ddea
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0xbc]
call fcn.0042f370
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.00437e1a
jmp 0x45e762
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x94], 0xfffffff7
jne 0x45a624
cmp dword [ebp - 0x90], esi
jne 0x45a624
mov dword [ebp - 0x94], 1
mov dword [ebp - 0x90], ebx
cmp dword [ebp - 0x74], 0xfffffff7
jne 0x45a641
cmp dword [ebp - 0x70], esi
jne 0x45a641
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x70], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4af944
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a742
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a67d
mov byte [ebp + 0x5f], 1
jmp 0x45a742
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a69c
mov byte [ebp + 0x5f], 2
jmp 0x45a742
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4af938
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a6bc
mov byte [ebp + 0x5f], 3
jmp 0x45a742
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a6e3
mov byte [ebp + 0x5f], 4
mov dword [ebp - 0xa0], 8
jmp 0x45a742
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a70a
mov byte [ebp + 0x5f], 5
mov dword [ebp - 0xa0], 0x10
jmp 0x45a742
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a727
mov byte [ebp + 0x5f], 6
jmp 0x45a742
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a742
mov byte [ebp + 0x5f], 7
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x17], 0
call fcn.0043fbfd
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x45a766
mov byte [ebp + 0x5b], 1
mov dword [ebp + 0x60], edi
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4af914
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a781
mov byte [ebp + 0x5b], 0x10
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a79f
mov byte [ebp + 0x17], 1
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a7bd
mov byte [ebp + 0x17], 0x20
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.0043fbfd
add esp, 0xc
test al, al
je 0x45a7db
mov byte [ebp + 0x17], 0x10
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00405172
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x108]
call fcn.0043dea2
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x45a825
mov dword [ebp - 0xa4], 0x80
jmp 0x45a83f
cmp ax, 0x2d
jne 0x45a849
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x45a849
mov dword [ebp - 0xa4], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.00405172
pop ecx
xor eax, eax
mov dword [ebp - 0x214], ebx
lea edi, [ebp - 0x210]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x4c1740
push edi
mov dword [ebp - 0x1ac], 0xebd0a0a2
mov word [ebp - 0x1a8], 0xb9e5
mov word [ebp - 0x1a6], 0x4433
mov byte [ebp - 0x1a4], 0x87
mov byte [ebp - 0x1a3], 0xc0
mov byte [ebp - 0x1a2], 0x68
mov byte [ebp - 0x1a1], 0xb6
mov byte [ebp - 0x1a0], 0xb7
mov byte [ebp - 0x19f], 0x26
mov byte [ebp - 0x19e], 0x99
mov byte [ebp - 0x19d], 0xc7
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xc], str.MS_Basic_Data
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x174], ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp byte [ebp + 0x5e], 0
jne 0x45a932
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044957c
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x45a959
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.004129ca
add esp, 4
test al, al
jne 0x45a959
mov ecx, edx
mov byte [ebp - 0x81], 1
mov dword [ebp + 0x78], ecx
jmp 0x45a959
push ebx
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044a92e
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x170], eax
jne 0x45a956
push edi
jmp 0x45e75a
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x45a969
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x55], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x45a97a
lea eax, [ebp + 0x78]
push eax
call fcn.00405196
jmp 0x45a98e
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00442983
pop ecx
mov dword [ebp - 0x178], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x2b], 1
jne 0x45a9a5
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x2b], 0
cmp word [eax], 0x2d
jne 0x45a9b6
lea eax, [ebp + 0x78]
push eax
call fcn.00405196
jmp 0x45a9ca
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00442983
pop ecx
mov dword [ebp - 0x174], eax
cmp byte [ebp + 0x5e], 0
pop ecx
je 0x45aa01
push ebx
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044a92e
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004428d3
add esp, 0x14
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1c4], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x45aa58
cmp byte [ebp + 0x5e], 0
je 0x45aa58
cmp cx, bx
je 0x45aa58
mov dword [ebp - 0x1c0], eax
push ebx
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.00419202
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1c4]
add esp, 0xc
mov dword [ebp - 0xec], 1
mov dword [ebp - 0xc], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x5f], 1
mov byte [ebp - 0x2d], 0
mov byte [ebp - 0x49], 0
mov byte [ebp - 0x4b], 0
je 0x45aa73
cmp byte [ebp + 0x5f], 4
jge 0x45aa73
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x108]
push 5
push ebx
mov edi, ebx
push 0x4af8d8
mov dword [ebp + 0x78], edi
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45ab54
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edi, ecx
jne 0x45aaf4
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp + 0x1c]
add ecx, 2
push eax
mov dword [ebp + 0x1c], ecx
call fcn.00442983
mov edi, dword [ebp + 0x1c]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x4b], 1
jne 0x45aaef
lea eax, [ebp - 0xdc]
push eax
inc edi
lea eax, [ebp + 0x1c]
inc edi
push eax
mov dword [ebp + 0x1c], edi
call fcn.00442983
mov edi, dword [ebp + 0x1c]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x4b], 0x11
jne 0x45aaef
inc edi
inc edi
mov ecx, edi
mov dword [ebp + 0x78], ecx
xor edx, edx
mov dx, word [ecx]
cmp dx, 0x5c
je 0x45ab24
cmp dx, 0x2f
je 0x45ab24
mov byte [ebp - 0x2c], 1
jmp 0x45ab24
mov eax, edx
call fcn.00437e2d
test al, al
jne 0x45ab29
cmp dx, 0x23
je 0x45ab29
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
test dx, dx
jne 0x45ab0b
sub ecx, edi
sar ecx, 1
test ecx, ecx
jle 0x45ab45
push ecx
push edi
lea ecx, [ebp - 0xb4]
call fcn.0043dea2
mov dword [ebp - 0x28], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00437e65
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x45ab94
push 2
push ebx
push 0x4af8d4
call fcn.0043917b
add esp, 0xc
test al, al
je 0x45ab6e
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043d98b
test al, al
je 0x45ab8c
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043a784
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0x2d]
push 0
push 0x200
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
call fcn.00492f10
mov dword [ebp - 0x40], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x3c], edx
je 0x45abc5
cmp ax, 0x3a
jne 0x45ac64
inc edi
inc edi
push 2
push edi
push 0x4af8d0
mov dword [ebp + 0x78], edi
call fcn.0043917b
push 2
push edi
push 0x4af8cc
mov byte [ebp + 0x67], al
call fcn.0043917b
mov byte [ebp + 0x1a], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x1a]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x49], al
jne 0x45ac11
cmp word [edi], 0x2b
jne 0x45ac11
inc edi
inc edi
mov byte [ebp - 0x29], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x1a], 0
jne 0x45ac35
mov ax, word [edi]
cmp ax, 0x40
je 0x45ac2c
cmp ax, 0x2d
je 0x45ac2c
cmp ax, 0x3d
jne 0x45ac35
or dword [ebp - 0x34], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043d98b
test al, al
je 0x45ac64
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044957c
test eax, eax
pop ecx
pop ecx
jle 0x45ac64
cmp dword [ebp + 0x60], 0
mov byte [ebp - 0x21], 1
jne 0x45ac68
mov byte [ebp + 0x67], 1
jmp 0x45ac6a
cmp dword [ebp + 0x60], 0
jg 0x45ac86
cmp byte [ebp + 0x5f], 0
jg 0x45ac86
cmp dword [ebp - 0x18], 0
jne 0x45ac86
cmp dword [ebp - 0xb0], 0
jne 0x45ac86
xor ecx, ecx
mov dword [ebp + 0x3c], ecx
jmp 0x45ac8f
mov dword [ebp + 0x3c], 1
xor ecx, ecx
cmp byte [ebp + 0x47], 0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x48], eax
je 0x45acb0
cmp dword [ebp + 0x3c], ecx
jne 0x45acb0
cmp word [ebx], cx
jne 0x45acb0
mov eax, 0xfffc0000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xb4]
lea edi, [ebp - 0x2cc]
mov word [ebp - 0x2cc], cx
cmp word [eax], cx
mov dword [ebp - 0xfc], edi
je 0x45acd6
mov edi, eax
mov dword [ebp - 0xfc], edi
push dword [ebp - 0x28]
lea eax, [ebp - 0x2cc]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp - 0x4a], 0
jg 0x45ad29
mov eax, dword [ebp - 0xac]
or eax, dword [ebp - 0xa8]
jne 0x45ad29
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45ad29
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x28]
add edi, 0x22
push eax
mov dword [ebp + 0x28], edi
call fcn.00440e07
pop ecx
pop ecx
cmp byte [ebp + 0x17], 0
jne 0x45ad3b
cmp byte [ebp + 0x5c], 0
jne 0x45ad3b
cmp byte [ebp + 0x5d], 0
je 0x45ad51
cmp dword [ebp - 0x28], 0
jge 0x45ad51
cmp dword [ebp - 0x48], 0
jge 0x45ad51
push 0x4c1740
jmp 0x45bd9c
and dword [ebp + 0x6c], 0
and dword [ebp - 0x80], 0
cmp byte [ebp + 0x47], 0
mov edi, 0x80070057
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xe0], edi
mov byte [ebp + 0x68], 0
je 0x45ae2a
mov ebx, dword [ebp - 0x48]
test ebx, ebx
jge 0x45ad92
cmp dword [ebp - 0x68], esi
jl 0x45ad92
jg 0x45ad88
cmp dword [ebp - 0x6c], esi
jbe 0x45ad92
cmp dword [ebp], 0
je 0x45ae2a
mov eax, dword [ebp]
test eax, eax
je 0x45adc8
cmp word [eax], 0x2a
jne 0x45adc8
xor eax, eax
mov al, byte [ebp + 0x47]
and eax, 2
shr eax, 1
push eax
push ebx
call fcn.0044aadc
pop ecx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x80], eax
xor eax, eax
or byte [0x4c1308], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
test ebx, ebx
jge 0x45addc
cmp dword [ebp - 0x68], esi
jl 0x45addc
jg 0x45add8
cmp dword [ebp - 0x6c], esi
jbe 0x45addc
test eax, eax
je 0x45ae2a
push eax
xor eax, eax
mov al, byte [ebp + 0x47]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push ebx
call fcn.00404d93
mov dword [ebp - 0x80], eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x68]
add esp, 0x1c
cmp eax, esi
je 0x45ae23
or byte [ebp + 0x68], 0x10
or byte [0x4c1308], 0x10
jmp 0x45ae2a
mov byte [0x4c1308], 0
cmp byte [ebp - 6], 0
jbe 0x45b083
cmp byte [ebp + 0x5e], 0
jne 0x45b083
xor esi, esi
cmp dword [ebp - 0x28], esi
jge 0x45ae54
mov eax, dword [ebp - 0xb4]
cmp word [eax], si
je 0x45b061
mov eax, dword [ebp - 0x64]
cmp eax, esi
jle 0x45ae64
cmp eax, dword [ebp + 0x60]
je 0x45b061
cmp dword [ebp + 0x60], 4
jg 0x45b061
cmp byte [ebp + 0x19], 2
jl 0x45b061
push esi
push 0x20000000
push 3
push esi
push 3
push 0xc0000000
push dword [ebp - 0xfc]
lea ecx, [ebp + 0x6c]
call fcn.004051d2
cmp dword [ebp + 0x6c], esi
je 0x45afad
push 0x800
push 1
push esi
push dword [ebp + 0x6c]
call fcn.0044271e
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x14], eax
call fcn.0043b675
add esp, 0x18
cmp eax, esi
mov ebx, eax
jge 0x45aecb
mov ebx, esi
lea eax, [ebx + ebx*2]
push eax
lea ecx, [ebp + 0x1c]
mov dword [ebp], ebx
call fcn.0043dc74
mov eax, dword [ebp + 0x1c]
lea edi, [eax + ebx]
lea eax, [ebx - 1]
not eax
push 0
and edi, eax
lea eax, [ebp - 0x54]
push eax
push ebx
lea esi, [edi + ebx]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x45af2e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x45af0c
inc esi
lea ecx, [ebp + 0x1c]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4c1740
jmp 0x45e612
push 0x200
push esi
push edi
call fcn.004128b6
dec dword [ebp - 0x64]
dec dword [ebp + 0x60]
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + edi + 0x1be]
mov dword [ebp + 0x28], eax
push ecx
lea eax, [eax + esi + 0x1be]
push eax
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
call fcn.004128b6
mov eax, dword [ebp + 0x28]
lea eax, [eax + edi + 0x1be]
push 0x10
push eax
lea eax, [ebx + esi + 0x1be]
push eax
call fcn.004128b6
push 0
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x34
test eax, eax
je 0x45afd0
lea ecx, [ebp + 0x1c]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4c1740
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45e762
push dword [ebp]
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x80], ebx
call fcn.0043e050
add esp, 0xc
test eax, eax
jne 0x45b015
push ebx
lea eax, [ebp - 0x54]
push eax
push dword [ebp]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x45b00c
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x45b009
xor eax, eax
inc eax
mov dword [ebp - 0x80], eax
push dword [ebp + 0x6c]
call fcn.0043bbca
pop ecx
mov al, byte [ebp + 0x5d]
or al, byte [ebp + 0x27]
lea ecx, [ebp + 0x1c]
or byte [ebp + 0x5c], al
mov al, byte [ebp + 0x5d]
or al, byte [ebp + 0x5c]
or al, byte [ebp + 0x27]
je 0x45b039
mov dword [ebp + 0x3c], ebx
call fcn.00437e1a
jmp 0x45d5bc
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4c1740
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0x80]
jmp 0x45e762
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
push 0x4c1740
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, edi
jmp 0x45e762
cmp byte [ebp + 0x17], 0x10
jne 0x45b096
test byte [ebp + 0x5d], 0x20
jne 0x45d5bc
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x47], 0
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x108]
je 0x45b0f5
cmp dword [ebp + 0x3c], ebx
jne 0x45b0f5
cmp byte [ebp + 0x27], 0
jne 0x45d5bc
cmp byte [ebp + 0x5c], 0
jne 0x45d5bc
cmp byte [ebp + 0x5d], 0
jne 0x45d5bc
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
test eax, eax
je 0x45b0ea
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0xe0]
jmp 0x45e762
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x45d722
cmp dword [ebp - 0xb0], ebx
jne 0x45da53
mov dl, byte [ebp + 0x5f]
cmp dl, 6
je 0x45de74
cmp dl, 1
je 0x45df45
cmp dl, 2
jne 0x45b130
cmp byte [ebp - 0x4a], 0
je 0x45df7a
xor eax, eax
cmp dl, 3
mov dword [ebp + 0x54], eax
je 0x45dfb5
cmp dl, 4
je 0x45e656
cmp dl, 5
je 0x45e656
cmp dl, 7
je 0x45e082
cmp byte [ebp + 0x1a], al
je 0x45b17a
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x67], 0
je 0x45b187
mov dword [ebp + 0x60], 5
cmp byte [ebp + 7], 0
je 0x45b1a2
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
cmp byte [ebp - 0x2d], 0
je 0x45b1b1
cmp dword [ebp - 0x48], ebx
jl 0x45bd7a
cmp byte [ebp - 0x49], 0
je 0x45b1c0
cmp dword [ebp + 0x60], ebx
jl 0x45bd7a
dec dword [ebp + 0x60]
cmp byte [ebp + 0x5e], 0
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x10c], esi
mov byte [ebp + 0x18], 0
mov byte [ebp - 0x83], 0
mov dword [ebp + 0x28], ebx
mov byte [ebp - 6], 0
mov byte [ebp - 0x4c], 0
mov dword [ebp - 0x78], ebx
jne 0x45b213
cmp dword [ebp - 0x5c], ebx
jne 0x45b213
mov eax, dword [ebp + 0x48]
or eax, dword [ebp + 0x4c]
jne 0x45b213
mov eax, dword [ebp + 0x2c]
or eax, dword [ebp + 0x30]
jne 0x45b213
mov byte [ebp + 7], 1
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
cmp byte [ebp - 0x79], 0
je 0x45b242
cmp dword [ebp + 0x4c], ebx
jl 0x45b242
jg 0x45b22c
cmp dword [ebp + 0x48], ebx
jb 0x45b242
cmp dword [ebp + 0x30], ebx
jl 0x45b242
jg 0x45b239
cmp dword [ebp + 0x2c], 1
jb 0x45b242
mov dword [ebp], 1
jmp 0x45b245
mov dword [ebp], ebx
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xfc]
lea ecx, [ebp + 0x6c]
call fcn.004051d2
cmp dword [ebp + 0x6c], ebx
je 0x45e10e
mov edi, 0x200
push edi
push dword [ebp + 0x6c]
call fcn.0043b675
pop ecx
cmp eax, edi
pop ecx
mov edi, eax
jge 0x45b287
mov edi, 0x200
cmp dword [ebp], ebx
mov dword [ebp + 0x20], edi
je 0x45b307
cmp dword [ebp + 0x4c], ebx
jl 0x45b2cd
jg 0x45b29b
cmp dword [ebp + 0x48], ebx
jb 0x45b2cd
push ebx
push 0x200
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.00492f10
test byte [ebp + 0x68], 0x11
jne 0x45b2cd
push ebx
push ebx
push ebx
lea ecx, [edi + edi*4]
shl ecx, 3
push ecx
push edx
push eax
push dword [ebp - 0x48]
call fcn.00404d93
add esp, 0x1c
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x67], 0
jne 0x45b307
mov eax, dword [ebp - 0xac]
add eax, dword [ebp + 0x48]
mov ecx, dword [ebp - 0xa8]
adc ecx, dword [ebp + 0x4c]
push edi
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043706d
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.0043bc10
mov dword [ebp - 0xe0], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.0044271e
add esp, 0x10
cmp byte [ebp + 0x17], 0
mov dword [ebp - 0x14], eax
je 0x45b32b
mov dword [ebp + 0x3c], ebx
jmp 0x45d5b4
cmp dword [ebp - 0x5c], 0xff
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x144], ebx
jg 0x45e13a
cmp byte [ebp + 0x67], 0
jne 0x45b38f
cmp dword [ebp + 0x60], ebx
jge 0x45b38f
cmp dword [ebp + 0x4c], ebx
jg 0x45e13a
jl 0x45b363
cmp dword [ebp + 0x48], ebx
jae 0x45e13a
cmp dword [ebp + 0x30], ebx
jg 0x45e13a
jl 0x45b377
cmp dword [ebp + 0x2c], ebx
jae 0x45e13a
cmp dword [ebp - 0x5c], ebx
jge 0x45e13a
mov dword [ebp - 0x5c], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x198], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp + 0x1c], eax
jne 0x45b3d4
cmp byte [ebp + 0x1a], 0
jne 0x45b3d4
cmp eax, 4
jl 0x45ba08
cmp byte [ebp + 0x5e], 0
jne 0x45ba08
cmp byte [ebp + 0x5b], 0
jne 0x45ba08
cmp byte [ebp + 0x67], 0
je 0x45b3f5
mov dword [ebp + 0x60], 4
cmp dword [ebp - 0x5c], 5
je 0x45bd7a
cmp dword [ebp - 0x5c], 0xf
je 0x45bd7a
push 0x100000
lea ecx, [ebp - 0x38]
mov dword [ebp + 0x3c], ebx
call fcn.0043dc74
lea eax, [ebp + 0x3c]
push eax
push dword [ebp - 0x38]
push dword [ebp + 0x6c]
call fcn.0043ba51
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x45b45d
cmp edx, ecx
jge 0x45b442
cmp ecx, 4
jge 0x45b4a3
cmp byte [ebp + 0x67], 0
jne 0x45b45d
cmp byte [ebp + 0x1a], 0
jne 0x45b45d
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3b], 0
jg 0x45b48f
dec eax
jmp 0x45b496
cmp byte [ebp + 0x1a], 0
mov byte [ebp + 0x3b], 1
jne 0x45b4ab
cmp byte [ebp + 0x67], 0
je 0x45b4b0
cmp dword [ebp - 0x5c], ebx
jl 0x45b4a3
cmp word [ebp - 0xa4], bx
jle 0x45b487
mov dword [ebp - 0xa4], 0x80
jmp 0x45b4b0
mov dword [ebp - 0xa4], ebx
jmp 0x45b4b0
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x45b4a3
cmp eax, edx
jl 0x45b4b0
cmp ecx, 4
jle 0x45b4b0
lea ecx, [ebp - 0x38]
jmp 0x45bd75
cmp edx, 4
jle 0x45b4a3
cmp edx, 4
jle 0x45b4c0
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0xc], eax
jmp 0x45b4c3
mov dword [ebp + 0xc], ebx
cmp byte [ebp + 0x3b], 0
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x1c], esi
jne 0x45b4e3
cmp ecx, 4
jl 0x45b4e0
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0xc], eax
jmp 0x45b4e3
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x40], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x45b4f7
cmp cl, 0xf
jne 0x45b4fa
mov dword [ebp + 0x40], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45b4eb
cmp byte [ebp + 0x3b], 0
je 0x45b510
cmp dword [ebp + 0x40], ebx
jl 0x45b4a3
mov eax, dword [ebp + 0x40]
lea eax, [eax + eax*8]
push 0
shl eax, 4
lea esi, [eax + edi + 0x30]
mov ebx, 0x200
push ebx
push dword [esi + 0xc]
mov dword [ebp - 0x98], esi
push dword [esi + 8]
call fcn.00492e60
push 0
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0xd4], eax
push dword [esi + 0x10]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], edx
call fcn.00492e60
mov ebx, eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x1a], 0
mov dword [ebp - 0x1f0], edx
lea esi, [eax + edi + 0x30]
je 0x45b663
mov eax, dword [ebp + 0x3c]
xor esi, esi
cmp eax, 8
jne 0x45b593
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd0]
jmp 0x45b60a
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 0x45b5e9
cmp cl, 0xf
je 0x45b5e9
inc esi
add eax, 0x90
cmp esi, 4
jl 0x45b5a6
lea ecx, [ebp - 0x38]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
test eax, eax
jmp 0x45bd99
push 0
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.00492e60
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
test esi, esi
jl 0x45b5bd
and dword [ebp - 0x244], 0
xor eax, eax
add ecx, dword [ebp - 0xac]
lea edi, [ebp - 0x240]
adc edx, dword [ebp - 0xa8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x244]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.0044a804
and dword [ebp - 0x80], 0
add esp, 0x14
cmp byte [ebp + 0x5d], 0
jne 0x45b657
cmp byte [ebp + 0x5c], 0
jne 0x45b657
cmp byte [ebp + 0x27], 0
je 0x45e15e
and dword [ebp + 0x3c], 0
lea ecx, [ebp - 0x38]
jmp 0x45d5af
cmp dword [ebp + 0x3c], 4
jg 0x45b671
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x34], eax
jmp 0x45b69c
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x45b682
cmp cl, 0xf
jne 0x45b685
mov dword [ebp + 0x34], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45b676
cmp byte [ebp + 0x3b], 0
jne 0x45b69c
mov eax, dword [ebp + 0xc]
add dword [ebp + 0x34], eax
cmp dword [ebp + 0x34], 0
jge 0x45b6ac
cmp byte [ebp + 0x67], 0
je 0x45b5bd
cmp byte [ebp + 0x3b], 0
je 0x45b6b8
and dword [ebp + 0x1c], 0
jmp 0x45b6e2
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x45b6ca
test edx, edx
jne 0x45b6d7
cmp cl, 5
je 0x45b6d7
cmp cl, 0xf
je 0x45b6d7
mov dword [ebp + 0x1c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45b6c0
cmp byte [ebp + 0x3b], 0
jne 0x45b6f2
cmp dword [ebp + 0x1c], 0
jl 0x45b5bd
cmp byte [ebp + 0x67], 0
je 0x45b93b
mov eax, dword [ebp + 0xc]
test eax, eax
jg 0x45b706
mov eax, dword [ebp + 0x40]
lea eax, [eax + eax*8]
shl eax, 4
lea eax, [eax + edi + 0x30]
mov ecx, dword [eax + 8]
push 0
mov dword [ebp + 0x10], eax
mov eax, dword [eax + 0xc]
push 0x200
push eax
push ecx
mov dword [ebp - 0x230], eax
call fcn.00492e60
cmp dword [ebp + 0x3c], 4
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
jle 0x45b834
cmp dword [ebp + 0x34], 0
jge 0x45b834
cmp byte [esi + 0x20], 0
je 0x45b7e8
mov eax, dword [ebp + 0x3c]
cmp eax, 8
jle 0x45b768
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x45b76b
mov eax, dword [ebp + 0x40]
push 0
lea eax, [eax + eax*8]
push 0x200
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.00492e60
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x150], eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 8]
push 0
adc ecx, dword [esi + 0xc]
push 0x200
push ecx
push eax
mov dword [ebp - 0x14c], edx
call fcn.00492e60
mov ecx, eax
sub ecx, dword [ebp - 0x188]
mov dword [ebp - 0x19c], ecx
mov ecx, edx
sbb ecx, dword [ebp - 0x184]
sub ebx, eax
mov dword [ebp - 0x198], ecx
mov ecx, dword [ebp - 0x1f0]
sbb ecx, edx
add ebx, dword [ebp - 0x188]
adc ecx, dword [ebp - 0x184]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ecx
jmp 0x45b878
cmp dword [ebp + 0xc], 4
jne 0x45e166
mov eax, dword [ebp + 0x40]
test eax, eax
jl 0x45e166
mov ecx, dword [ebp - 0x98]
cmp byte [ecx + 0x20], 0
je 0x45e166
mov edx, dword [ebp - 0xd0]
or dword [ebp + 0xc], 0xffffffff
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
jmp 0x45b870
cmp dword [ebp + 0xc], 0
jle 0x45b85a
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 8]
mov eax, dword [eax + 0x14]
adc eax, dword [ebp - 0x230]
push 0
push 0x200
push eax
push ecx
call fcn.00492e60
mov ecx, dword [ebp - 0x1f0]
sub ebx, eax
sbb ecx, edx
add ebx, dword [ebp - 0x188]
adc ecx, dword [ebp - 0x184]
and dword [ebp - 0x6c], 0
and dword [ebp - 0x68], 0
test ecx, ecx
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edx
jl 0x45b5bd
jg 0x45b896
test ebx, ebx
jbe 0x45b5bd
cmp byte [ebp - 0x55], 0
je 0x45b8a2
add dword [ebp + 0x48], eax
adc dword [ebp + 0x4c], edx
mov edi, eax
add edi, 1
mov esi, edx
adc esi, 0
cmp dword [ebp + 0x4c], esi
jg 0x45b8be
jl 0x45b8b8
cmp dword [ebp + 0x48], edi
ja 0x45b8be
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], esi
sub ebx, dword [ebp + 0x48]
sbb ecx, dword [ebp + 0x4c]
add ebx, eax
adc ecx, edx
cmp dword [ebp + 0x30], ecx
jl 0x45b8da
jg 0x45b8d4
cmp dword [ebp + 0x2c], ebx
jbe 0x45b8da
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x30], ecx
xor eax, eax
cmp dword [ebp + 0x30], eax
jl 0x45b5bd
jg 0x45b8f0
cmp dword [ebp + 0x2c], eax
jb 0x45b5bd
cmp dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x3c]
jle 0x45b90e
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x45b904
inc eax
jmp 0x45b916
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x45b916
and eax, 0xfffffffc
cmp eax, 3
jg 0x45b919
inc eax
jmp 0x45b921
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0xc8]
jmp 0x45b9f5
mov eax, dword [ebp + 0x34]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
push 0
mov edi, 0x200
push edi
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.00492e60
push 0
push edi
push dword [esi + 0x14]
mov ebx, eax
push dword [esi + 0x10]
mov eax, edx
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], eax
call fcn.00492e60
cmp byte [ebp - 0x55], 0
je 0x45b991
add dword [ebp + 0x48], ebx
mov ecx, dword [ebp - 0x1e8]
adc dword [ebp + 0x4c], ecx
xor esi, esi
cmp dword [ebp + 0x4c], esi
jl 0x45b9b7
jg 0x45b99f
cmp dword [ebp + 0x48], esi
jbe 0x45b9b7
mov ecx, dword [ebp - 0x1e8]
cmp dword [ebp + 0x4c], ecx
jg 0x45b9b7
jl 0x45b9b1
cmp dword [ebp + 0x48], ebx
ja 0x45b9b7
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x30], esi
jl 0x45b9e9
jg 0x45b9c3
cmp dword [ebp + 0x2c], esi
jbe 0x45b9e9
cmp dword [ebp + 0x30], edx
jl 0x45b9d5
jg 0x45b9cf
cmp dword [ebp + 0x2c], eax
jbe 0x45b9d5
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], edx
cmp dword [ebp + 0x30], esi
jl 0x45e16e
jg 0x45b9e9
cmp dword [ebp + 0x2c], esi
jb 0x45e16e
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x148], ebx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x144], eax
call fcn.00437e1a
mov edi, dword [ebp + 0x20]
xor ebx, ebx
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
setge byte [ebp - 0x4e]
add eax, dword [ebp - 0xac]
push ebx
adc ecx, dword [ebp - 0xa8]
push 0x200
push ecx
push eax
call fcn.00492f10
cmp dword [ebp], ebx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], edx
je 0x45ba80
cmp byte [ebp + 0x67], 0
je 0x45ba80
mov eax, dword [ebp - 0xac]
add eax, dword [ebp + 0x48]
mov ecx, dword [ebp - 0xa8]
adc ecx, dword [ebp + 0x4c]
push edi
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043706d
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.0043bc10
mov dword [ebp - 0xe0], ebx
push ebx
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
cmp eax, dword [ebp - 0x12c]
jne 0x45e388
cmp edx, dword [ebp - 0x128]
jne 0x45e388
lea eax, [edi + edi*2]
push eax
lea ecx, [ebp - 0x10]
call fcn.0043dc74
mov eax, dword [ebp - 0x10]
lea esi, [eax + edi]
lea eax, [edi - 1]
not eax
and esi, eax
push edi
mov dword [ebp + 0x34], esi
add esi, edi
push ebx
push esi
mov dword [ebp + 0x10], esi
call fcn.00492e00
add esp, 0xc
push ebx
lea eax, [ebp - 0x54]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45e380
push edi
push esi
push dword [ebp + 0x34]
call fcn.004128b6
add esp, 0xc
cmp byte [ebp + 0x5b], 0
je 0x45bbe5
cmp byte [ebp + 0x5e], 0
jne 0x45bbe5
push esi
call fcn.0043bbe2
cmp byte [ebp - 5], 0
pop ecx
jg 0x45bb3b
jge 0x45bb37
cmp dword [ebp - 0x3c], ebx
lea eax, [edi + edi + 0x4000]
jg 0x45bb3b
jl 0x45bb37
cmp dword [ebp - 0x40], eax
ja 0x45bb3b
xor al, al
jmp 0x45bb3d
mov al, 1
cmp byte [ebp + 0x5b], 1
jne 0x45bb78
test al, al
je 0x45bb66
cmp edi, 0x200
jbe 0x45bb66
lea eax, [edi - 0x200]
push eax
lea eax, [esi + 0x200]
push ebx
push eax
call fcn.00492e00
add esp, 0xc
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.00492e00
add esp, 0xc
push edi
push esi
push dword [ebp + 0x34]
mov word [esi + 0x1fe], 0xaa55
call fcn.00437f1d
add esp, 0xc
test eax, eax
je 0x45bbc5
push ebx
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
push ebx
lea eax, [ebp - 0x54]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x54], ebx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x80], eax
mov al, byte [ebp + 0x5d]
or al, byte [ebp + 0x5c]
or al, byte [ebp + 0x27]
je 0x45e19a
cmp dword [ebp - 0x28], ebx
jl 0x45e19a
mov dword [ebp + 0x3c], ebx
jmp 0x45d5ac
cmp byte [ebp + 0x5f], 2
je 0x45bc01
cmp byte [ebp + 0x19], 0
jne 0x45bc01
cmp byte [ebp - 0x21], 0
je 0x45bc10
cmp dword [ebp + 0x60], 1
jle 0x45bd72
cmp byte [ebp - 0x21], 0
je 0x45bc10
cmp dword [ebp + 0x60], ebx
jl 0x45bd72
push 0x100000
lea ecx, [ebp + 8]
call fcn.0043dc74
cmp dword [ebp - 0x48], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x154], ebx
jl 0x45bc4e
push dword [ebp + 0x6c]
mov esi, dword [ebp + 8]
call fcn.0043b7fd
pop ecx
push ebx
push edi
push edx
push eax
call fcn.00492e60
mov esi, dword [ebp - 0xd8]
jmp 0x45bcb8
mov esi, dword [ebp - 0xd8]
cmp esi, ebx
jl 0x45bc74
jg 0x45bc62
cmp dword [ebp - 0xdc], ebx
jb 0x45bc74
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], esi
lea eax, [ebp - 0x268]
push eax
push ebx
push dword [ebp - 0xfc]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesExW]
test eax, eax
je 0x45bcfe
test byte [ebp - 0x268], 0x10
jne 0x45bcfe
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x248]
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 - 0xac]
sbb edx, dword [ebp - 0xa8]
cmp esi, ebx
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], edx
jl 0x45bcfe
jg 0x45bcde
cmp dword [ebp - 0xdc], ebx
jbe 0x45bcfe
cmp edx, esi
ja 0x45bcfe
jb 0x45bcec
cmp eax, dword [ebp - 0xdc]
jae 0x45bcfe
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], esi
lea eax, [ebp - 0x15c]
push eax
push dword [ebp + 8]
push dword [ebp + 0x6c]
call fcn.0043ba51
mov esi, eax
mov eax, dword [ebp - 0xb4]
mov cx, word [eax]
add esp, 0xc
cmp cx, bx
jne 0x45bd27
cmp esi, ebx
je 0x45bd6a
cmp esi, ebx
je 0x45bd2f
mov eax, dword [esi]
jmp 0x45bd31
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x53]
cmp byte [ebp + 0x53], 0
je 0x45bd4b
cmp byte [ebp - 0x84], 0
mov byte [ebp + 0x1b], 1
je 0x45bd4f
mov byte [ebp + 0x1b], 0
cmp byte [ebp - 0x99], 0
jne 0x45bdb2
cmp byte [ebp + 0x5b], 0
jne 0x45bdb2
cmp byte [ebp + 0x1b], 0
je 0x45bdac
cmp byte [ebp + 0x5e], 0
jne 0x45bdb2
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, ebx
je 0x45bda2
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45e762
cmp byte [ebp + 0x5e], 0
jne 0x45bd6a
cmp cx, bx
mov eax, dword [ebp - 0x118]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp - 0x134]
mov dword [ebp + 0xc], eax
jne 0x45be7f
xor eax, eax
mov dword [ebp - 0x22c], ebx
lea edi, [ebp - 0x228]
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 - 0x54]
push eax
push 0x18
lea eax, [ebp - 0x22c]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp dword [ebp - 0x114], ebx
jg 0x45be2f
jl 0x45be19
cmp dword [ebp - 0x118], ebx
ja 0x45be2f
mov eax, dword [ebp - 0x220]
mov dword [ebp + 0x40], eax
cdq
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
cmp dword [ebp - 0x11c], ebx
jg 0x45be57
jl 0x45be41
cmp dword [ebp - 0x120], ebx
ja 0x45be57
mov eax, dword [ebp - 0x21c]
mov dword [ebp + 0x3c], eax
cdq
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x130], ebx
jg 0x45be7f
jl 0x45be69
cmp dword [ebp - 0x134], ebx
ja 0x45be7f
mov eax, dword [ebp - 0x218]
mov dword [ebp + 0xc], eax
cdq
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
cmp dword [ebp - 0x114], ebx
jg 0x45bea5
jl 0x45be91
cmp dword [ebp - 0x118], ebx
ja 0x45bea5
mov eax, 0xff
mov dword [ebp + 0x40], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], ebx
cmp dword [ebp - 0x11c], ebx
jg 0x45bec9
jl 0x45beb7
cmp dword [ebp - 0x120], ebx
ja 0x45bec9
push 0x3f
pop eax
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], ebx
cmp dword [ebp - 0x130], ebx
jg 0x45befc
jl 0x45bedb
cmp dword [ebp - 0x134], ebx
ja 0x45befc
mov eax, dword [ebp + 0x20]
cmp eax, ebx
mov dword [ebp + 0xc], eax
ja 0x45beec
mov dword [ebp + 0xc], 0x200
mov eax, dword [ebp + 0xc]
cdq
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
mov eax, dword [ebp + 0xc]
cdq
mov edi, 0x200
mov ecx, edi
idiv ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 0x20]
lea ebx, [ecx + eax]
add eax, ebx
mov dword [ebp - 0x1c], eax
add eax, 0x10000
cmp byte [ebp + 0x1b], 0
mov dword [ebp - 0x15c], eax
jne 0x45c805
cmp byte [ebp + 0x5e], 0
jne 0x45c805
cmp byte [ebp + 7], 0
mov byte [ebp + 0x53], 0
jne 0x45c3d0
mov esi, dword [ebp + 0x4c]
xor eax, eax
cmp esi, eax
jg 0x45bf6e
jl 0x45bf5a
cmp dword [ebp + 0x48], eax
jae 0x45bf6e
cmp dword [ebp + 0x30], eax
jl 0x45c3d0
jg 0x45bf6e
cmp dword [ebp + 0x2c], eax
jb 0x45c3d0
mov ebx, dword [ebp + 0x60]
cmp ebx, eax
jl 0x45c3d0
push 0x100000
lea ecx, [ebp - 0x44]
call fcn.0043dc74
mov eax, dword [ebp + 0xc]
imul eax, dword [ebp + 0x3c]
cdq
idiv edi
mov edi, eax
imul eax, dword [ebp + 0x40]
cmp dword [ebp + 0xc], 0
cdq
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], edx
jle 0x45e1cd
mov eax, dword [ebp - 0xb4]
cmp word [eax], 0
jne 0x45bfeb
and dword [ebp], 0
lea eax, [ebp]
push eax
push dword [ebp - 0x44]
push dword [ebp + 0x6c]
call fcn.0043ba51
add esp, 0xc
test eax, eax
je 0x45e1e5
cmp ebx, 4
jl 0x45bfeb
cmp byte [ebp + 0x67], 0
jne 0x45bfeb
cmp ebx, dword [ebp]
jge 0x45e1cd
xor edx, edx
xor eax, eax
cmp esi, edx
jl 0x45c0a0
jg 0x45c002
cmp dword [ebp + 0x48], edx
jbe 0x45c0a0
mov ecx, dword [ebp - 0x94]
and ecx, dword [ebp - 0x90]
cmp ecx, 0xffffffff
jne 0x45c041
cmp esi, dword [ebp - 0x168]
jl 0x45c03c
jg 0x45c028
mov eax, dword [ebp + 0x48]
cmp eax, dword [ebp - 0x16c]
jb 0x45c03c
cmp byte [ebp - 0x4e], 0
jne 0x45c03c
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
jmp 0x45c08c
mov eax, edi
cdq
jmp 0x45c08a
cmp byte [ebp - 0x4d], 0
jne 0x45c0a0
mov eax, dword [ebp + 0xc]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x94]
mov edi, edx
adc edi, dword [ebp - 0x90]
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.00492e60
mov ecx, eax
mov eax, dword [ebp - 0x98]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.00492f10
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], edx
push edx
push eax
push esi
push dword [ebp + 0x48]
call fcn.0043bb26
add esp, 0x10
add dword [ebp + 0x48], eax
adc esi, edx
mov dword [ebp + 0x4c], esi
xor ecx, ecx
cmp dword [ebp + 0x30], ecx
jl 0x45c0cf
jg 0x45c0ae
cmp dword [ebp + 0x2c], ecx
jbe 0x45c0cf
cmp byte [ebp - 0x81], 0
jne 0x45c0cf
sub dword [ebp + 0x2c], eax
sbb dword [ebp + 0x30], edx
cmp dword [ebp + 0x30], ecx
jg 0x45c0cf
jl 0x45c0c9
cmp dword [ebp + 0x2c], ecx
jae 0x45c0cf
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x30], ecx
cmp esi, ecx
jl 0x45c0e1
jg 0x45c0da
cmp dword [ebp + 0x48], ecx
jbe 0x45c0e1
mov edi, dword [ebp + 0x48]
mov ebx, esi
jmp 0x45c0e5
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x30], 0
jl 0x45c184
jg 0x45c0fb
cmp dword [ebp + 0x2c], 0
jbe 0x45c184
mov eax, dword [ebp - 0x74]
and eax, dword [ebp - 0x70]
cmp eax, 0xffffffff
jne 0x45c121
push dword [ebp - 0x168]
add edi, dword [ebp + 0x2c]
push dword [ebp - 0x16c]
adc ebx, dword [ebp + 0x30]
push ebx
push edi
call fcn.004951f0
jmp 0x45c17e
cmp byte [ebp - 0x4d], 0
jne 0x45c184
mov eax, dword [ebp + 0xc]
cdq
mov esi, eax
add eax, dword [ebp - 0x74]
mov ecx, edx
adc ecx, dword [ebp - 0x70]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x18c], edx
call fcn.00492e60
push dword [ebp - 0x18c]
push esi
push edx
push eax
call fcn.00492f10
push 0
push 0x200
push edx
push eax
call fcn.00492e60
add edi, dword [ebp + 0x2c]
push edx
adc ebx, dword [ebp + 0x30]
push eax
push ebx
push edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
call fcn.004951f0
mov esi, dword [ebp + 0x4c]
sub dword [ebp + 0x2c], eax
sbb dword [ebp + 0x30], edx
cmp dword [ebp - 0x68], 0
mov byte [ebp + 0x53], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x1b], 0
jl 0x45c2b1
jg 0x45c1a6
cmp dword [ebp - 0x6c], 0
jbe 0x45c2b1
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x98]
mov edi, dword [ebp + 0x30]
sbb edi, dword [ebp - 0xc8]
add ecx, dword [ebp + 0x48]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.00492e60
and dword [ebp - 0x1bc], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x40]
lea edi, [ebp - 0x1b8]
push dword [ebp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x19c]
lea eax, [ebp + 0x1b]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x53]
push eax
push dword [ebp - 0x198]
mov dword [ebp - 0x6c], ebx
push edi
mov dword [ebp - 0x68], edx
call fcn.0043bb50
mov al, byte [ebp + 0x3b]
add esp, 0x20
push 1
push dword [ebp + 0x40]
mov byte [ebp - 0x1bb], al
mov al, byte [ebp + 0x1b]
push dword [ebp + 0x3c]
mov byte [ebp - 0x1ba], al
mov al, byte [ebp + 0x53]
mov byte [ebp - 0x1b9], al
lea eax, [ebp + 0x1b]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x53]
push eax
push 0
push 2
push dword [ebp - 0x198]
mov byte [ebp - 0x1bc], 0
push edi
call fcn.00492f10
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0043bb50
mov al, byte [ebp + 0x3b]
mov byte [ebp - 0x1b7], al
mov al, byte [ebp + 0x1b]
mov byte [ebp - 0x1b6], al
mov al, byte [ebp + 0x53]
push 1
mov byte [ebp - 0x1b5], al
lea eax, [ebp - 0x1bc]
push eax
push dword [ebp - 0x14c]
mov byte [ebp - 0x1b8], 5
push dword [ebp - 0x150]
mov dword [ebp - 0x1b4], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x1b0], ebx
call fcn.0044a804
add esp, 0x34
mov eax, dword [ebp - 0x98]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
call fcn.00492e60
test esi, esi
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], edx
jl 0x45c303
jg 0x45c2e8
xor eax, eax
cmp dword [ebp + 0x48], eax
jb 0x45c305
push ebx
push edi
push esi
push dword [ebp + 0x48]
call fcn.00492e60
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
xor eax, eax
jmp 0x45c311
xor eax, eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
cmp dword [ebp + 0x30], eax
jl 0x45c332
jg 0x45c31d
cmp dword [ebp + 0x2c], eax
jb 0x45c332
push ebx
push edi
push dword [ebp + 0x30]
push dword [ebp + 0x2c]
call fcn.00492e60
mov dword [ebp - 0x10c], edx
jmp 0x45c338
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x110], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0xe4]
mov edi, dword [ebp - 0xe8]
setge al
push eax
push dword [ebp + 0x40]
lea eax, [ebp + 0x18]
push dword [ebp + 0x3c]
push eax
lea eax, [ebp - 0x83]
push eax
lea eax, [ebp + 0x28]
push eax
push ebx
push edi
call fcn.0043bb50
add esp, 0x20
test esi, esi
jl 0x45c397
jg 0x45c37f
cmp dword [ebp + 0x48], 0
jbe 0x45c397
sub edi, dword [ebp - 0x1d8]
sbb ebx, dword [ebp - 0x1d4]
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], ebx
mov al, byte [ebp - 0x4e]
mov byte [ebp + 0x53], al
movsx eax, al
push eax
push dword [ebp + 0x40]
lea eax, [ebp - 6]
push dword [ebp + 0x3c]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x110]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.0043bb50
add esp, 0x20
lea ecx, [ebp - 0x44]
call fcn.00437e1a
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x10]
shl ebx, 4
cmp byte [ebp + 0x5f], 2
lea edi, [ebx + esi]
je 0x45e20a
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x34]
call fcn.004128b6
add esp, 0xc
cmp dword [ebp - 0x68], 0
jl 0x45c432
jg 0x45c403
cmp dword [ebp - 0x6c], 0
jb 0x45c432
cmp dword [ebp + 0x1c], 0
jle 0x45c41b
push ebx
push 0
add esi, 0x1be
push esi
call fcn.00492e00
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.00492e00
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [edi + 0x1c2]
jne 0x45c454
cmp byte [ebp + 0x19], 2
jge 0x45c454
cmp al, 5
je 0x45e1d5
cmp al, 0xf
je 0x45e1d5
cmp byte [ebp + 0x67], 0
mov esi, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x45c4ca
test al, al
je 0x45c4ca
xor ebx, ebx
cmp dword [ebp - 0x5c], ebx
je 0x45c4cc
cmp byte [ebp + 0x19], 2
jge 0x45c4cc
cmp byte [ebp - 0x4e], bl
jne 0x45c4cc
cmp dword [ebp + 0x4c], ebx
jl 0x45c4a2
jg 0x45c488
cmp dword [ebp + 0x48], ebx
jb 0x45c4a2
xor eax, eax
cmp dword [ebp - 0xe8], esi
jne 0x45bd6a
cmp dword [ebp - 0xe4], eax
jne 0x45bd6a
cmp dword [ebp + 0x30], ebx
jl 0x45c4cc
jg 0x45c4ae
cmp dword [ebp + 0x2c], ebx
jb 0x45c4cc
xor eax, eax
cmp dword [ebp - 0x110], ecx
jne 0x45c4c0
cmp dword [ebp - 0x10c], eax
je 0x45c4cc
cmp ecx, ebx
jne 0x45bd6a
jmp 0x45c4cc
xor ebx, ebx
cmp byte [ebp + 7], 0
je 0x45c4ee
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], ebx
mov eax, dword [ebp - 0x5c]
cmp eax, ebx
jl 0x45c4fb
mov byte [edi + 0x1c2], al
mov eax, dword [ebp - 0xa4]
cmp ax, bx
jl 0x45c50c
mov byte [edi + 0x1be], al
cmp dword [ebp + 0x4c], ebx
jg 0x45c538
jl 0x45c518
cmp dword [ebp + 0x48], ebx
jae 0x45c538
cmp dword [ebp + 0x30], ebx
jl 0x45c5b1
jg 0x45c52c
cmp dword [ebp + 0x2c], ebx
jb 0x45c5b1
mov eax, dword [ebp - 0x110]
lea eax, [esi + eax - 1]
jmp 0x45c54e
cmp dword [ebp + 0x30], ebx
jg 0x45c56f
jl 0x45c544
cmp dword [ebp + 0x2c], ebx
jae 0x45c56f
mov eax, dword [ebp - 0xe8]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x53]
push ecx
push dword [ebp + 0x40]
lea ecx, [ebp - 6]
push dword [ebp + 0x3c]
push ecx
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x78]
push ecx
push ebx
push eax
call fcn.0043bb50
add esp, 0x20
cmp dword [ebp + 0x4c], ebx
jl 0x45c5a5
jg 0x45c57b
cmp dword [ebp + 0x48], ebx
jb 0x45c5a5
mov al, byte [ebp - 0x83]
mov byte [edi + 0x1bf], al
mov al, byte [ebp + 0x18]
mov byte [edi + 0x1c0], al
mov al, byte [ebp + 0x28]
mov byte [edi + 0x1c1], al
mov eax, dword [ebp - 0xe8]
mov dword [edi + 0x1c6], eax
cmp dword [ebp + 0x30], ebx
jg 0x45c5bd
jl 0x45c5b1
cmp dword [ebp + 0x2c], ebx
jae 0x45c5bd
cmp dword [ebp + 0x4c], ebx
jl 0x45c5d8
jg 0x45c5bd
cmp dword [ebp + 0x48], ebx
jb 0x45c5d8
mov al, byte [ebp - 0x4c]
mov byte [edi + 0x1c3], al
mov al, byte [ebp - 6]
mov byte [edi + 0x1c4], al
mov al, byte [ebp - 0x78]
mov byte [edi + 0x1c5], al
cmp dword [ebp + 0x30], ebx
jl 0x45c5f0
jg 0x45c5e4
cmp dword [ebp + 0x2c], ebx
jb 0x45c5f0
mov eax, dword [ebp - 0x110]
mov dword [edi + 0x1ca], eax
cmp dword [ebp - 0x5c], ebx
jge 0x45c616
cmp word [ebp - 0xa4], bx
jge 0x45c616
cmp dword [ebp + 0x4c], ebx
jg 0x45c616
jl 0x45c60a
cmp dword [ebp + 0x48], ebx
jae 0x45c616
cmp dword [ebp + 0x30], ebx
jl 0x45c629
jg 0x45c616
cmp dword [ebp + 0x2c], ebx
jb 0x45c629
mov esi, dword [ebp + 0x10]
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
jmp 0x45c62c
mov esi, dword [ebp + 0x10]
cmp word [ebp - 0xa4], bx
jge 0x45c660
cmp dword [ebp - 0x5c], ebx
jge 0x45c660
cmp dword [ebp + 0x4c], ebx
jg 0x45c660
jl 0x45c646
cmp dword [ebp + 0x48], ebx
jae 0x45c660
cmp dword [ebp + 0x30], ebx
jg 0x45c660
jl 0x45c652
cmp dword [ebp + 0x2c], ebx
jae 0x45c660
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
push ebx
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
cmp eax, dword [ebp - 0x12c]
jne 0x45e378
cmp edx, dword [ebp - 0x128]
jne 0x45e378
mov eax, dword [ebp - 0x148]
or eax, dword [ebp - 0x144]
mov dword [ebp + 0x3c], 1
jne 0x45c6ac
push esi
call fcn.0043bbe2
pop ecx
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x34]
call fcn.0043e050
add esp, 0xc
test eax, eax
jne 0x45c6dd
push ebx
lea eax, [ebp - 0x54]
push eax
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.0043bbca
pop ecx
cmp dword [ebp + 0x4c], ebx
jl 0x45c7d9
jg 0x45c6f5
cmp dword [ebp + 0x48], 0x200
jb 0x45c7d9
cmp dword [ebp + 0x30], 0
jl 0x45c7d9
jg 0x45c70e
cmp dword [ebp + 0x2c], 0x200
jbe 0x45c7d9
cmp byte [ebp - 0x82], 0
jle 0x45c7d9
push dword [ebp + 0x20]
push 0
push dword [ebp + 0x10]
call fcn.00492e00
add esp, 0xc
push 0
push 0x200
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.00492f10
mov esi, eax
mov ebx, edx
mov edi, esi
add edi, dword [ebp - 0x40]
mov dword [ebp - 0x200], ebx
adc ebx, dword [ebp - 0x3c]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
cmp eax, esi
jne 0x45c7d5
cmp edx, dword [ebp - 0x200]
jne 0x45c7d5
push 0
lea eax, [ebp - 0x54]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x34]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
mov dword [ebp + 0x3c], eax
je 0x45c7d5
mov eax, dword [ebp + 0x20]
cmp dword [ebp - 0x54], eax
jne 0x45c7d5
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x34]
call fcn.0043e050
add esp, 0xc
test eax, eax
jne 0x45c7d9
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
cmp eax, esi
jne 0x45c7d5
cmp edx, dword [ebp - 0x200]
jne 0x45c7d5
push 0
lea eax, [ebp - 0x54]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x10]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov dword [ebp + 0x3c], eax
jmp 0x45c7d9
and dword [ebp + 0x3c], 0
xor eax, eax
cmp dword [ebp + 0x3c], eax
sete al
cmp byte [ebp + 0x5c], 0
mov esi, eax
mov dword [ebp - 0x80], esi
jne 0x45c7fc
cmp byte [ebp + 0x5d], 0
jne 0x45c7fc
cmp byte [ebp + 0x27], 0
je 0x45e3b3
and dword [ebp + 0x3c], 0
jmp 0x45d5a4
cmp byte [ebp + 7], 0
je 0x45c80f
mov byte [ebp - 0x29], 0
cmp byte [ebp + 0x53], 0
je 0x45c823
cmp byte [ebp + 0x5b], 0
jne 0x45c823
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x34], eax
jmp 0x45c82a
mov dword [ebp + 0x34], 0x80
mov eax, dword [ebp - 0x98]
cdq
mov edi, edx
push edi
mov esi, eax
push esi
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
call fcn.00492e60
push edi
push esi
push dword [ebp - 0xd8]
mov dword [ebp + 0x48], eax
push dword [ebp - 0xdc]
mov dword [ebp + 0x4c], edx
call fcn.00492e60
push edi
push esi
push dword [ebp + 0x30]
mov dword [ebp - 0xdc], eax
push dword [ebp + 0x2c]
mov dword [ebp - 0xd8], edx
call fcn.00492e60
mov esi, eax
sub esi, 1
mov edi, edx
sbb edi, 0
cmp byte [ebp - 0x2b], 0
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], edx
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], edi
je 0x45c8b2
mov esi, eax
add esi, dword [ebp + 0x48]
mov edi, edx
adc edi, dword [ebp + 0x4c]
sub esi, 1
sbb edi, 0
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], edi
and dword [ebp - 0x104], 0
and dword [ebp - 0x100], 0
cmp byte [ebp + 0x5b], 1
jne 0x45c93e
test byte [ebp - 0x4b], 0x10
je 0x45c8f0
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd8]
mov esi, eax
sub esi, 1
mov edi, ecx
sbb edi, 0
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], edi
jmp 0x45c8fc
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x158]
cmp dword [ebp + 0x4c], 0
jg 0x45c915
jl 0x45c90a
cmp dword [ebp + 0x48], 1
jae 0x45c915
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x48], 1
test edi, edi
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x100], edi
jg 0x45c944
jl 0x45c92c
cmp esi, 1
jae 0x45c944
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], ecx
cmp byte [ebp + 0x5b], 0
je 0x45c94c
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x4c]
jmp 0x45c950
xor eax, eax
xor ecx, ecx
push dword [ebp - 0x3c]
lea edx, [ebp - 0x104]
push dword [ebp - 0x40]
push edx
push ecx
push eax
push dword [ebp + 0x20]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x34]
push dword [ebp + 8]
push eax
call fcn.00442588
add esp, 0x24
cmp byte [ebp + 0x53], 0
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
jne 0x45c99b
or eax, edx
jne 0x45c99b
and dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 1
cmp dword [ebp - 0x100], 0
jl 0x45e1d5
jg 0x45c9b7
cmp dword [ebp - 0x104], 0x20
jb 0x45e1d5
cmp byte [ebp + 0x5f], 2
mov eax, dword [ebp + 0x34]
je 0x45e3e7
cmp dword [ebp + 0x60], eax
mov dword [ebp], 1
jae 0x45c9f8
cmp dword [ebp - 0x64], eax
jge 0x45c9f8
cmp dword [ebp + 0x60], 0
jl 0x45c9fc
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0x1c]
push 0x10
push 0x4ac820
push eax
call fcn.00437f1d
add esp, 0xc
test eax, eax
jne 0x45c9fc
and dword [ebp], 0
mov ecx, dword [ebp + 0x20]
xor edx, edx
lea eax, [ecx + 0x3fff]
div ecx
cmp byte [ebp + 0x5b], 1
mov dword [ebp + 0xc], eax
jne 0x45cd3b
mov eax, dword [ebp + 0x34]
cmp dword [ebp + 0x60], eax
jae 0x45e1d5
mov edx, dword [ebp - 0x1c]
mov dword [ebp + 0x10], edx
mov edx, dword [ebp - 0x8c]
shl eax, 7
inc edx
imul edx, ecx
mov ecx, 0x4800
sub ecx, edx
cmp byte [ebp - 5], 0
mov dword [ebp - 0x78], eax
mov dword [ebp + 0x28], ecx
jg 0x45ca75
jge 0x45ca62
xor edx, edx
cmp dword [ebp - 0x3c], edx
jg 0x45ca75
jl 0x45ca62
mov edx, dword [ebp + 0x20]
lea edx, [edx + edx + 0x4000]
cmp dword [ebp - 0x40], edx
ja 0x45ca75
xor edx, edx
test eax, eax
mov byte [ebp + 0x18], 0
mov dword [ebp + 0x1c], edx
jle 0x45cb18
jmp 0x45cac7
cmp dword [ebp + 0x20], 0x200
mov byte [ebp + 0x18], 1
jbe 0x45ca9e
mov eax, dword [ebp + 0x20]
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 8]
add eax, 0x200
push 0
push eax
call fcn.00492e00
add esp, 0xc
mov eax, dword [ebp + 0x20]
add eax, 0xffffffa4
push eax
lea eax, [ebx + 0x5c]
push 0
push eax
call fcn.00492e00
push 0x4000
push 0
push dword [ebp - 0x1c]
call fcn.00492e00
add esp, 0x18
jmp 0x45cb18
mov ecx, dword [ebp + 0x28]
cmp edx, ecx
jl 0x45cae1
push 0x10
push 0
push dword [ebp + 0x10]
call fcn.00492e00
add esp, 0xc
mov eax, 0x80
jmp 0x45cb0a
push 0x1b0
push 0
push dword [ebp + 0x10]
call fcn.00492e00
mov eax, dword [ebp + 0x10]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.00492e00
add esp, 0x18
mov eax, 0x200
add dword [ebp + 0x1c], eax
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x10], eax
cmp edx, dword [ebp - 0x78]
jl 0x45cac4
push 0x38
push 0
push ebx
call fcn.00492e00
push 0x14
lea eax, [ebx + 0x48]
push 0
push eax
call fcn.00492e00
mov eax, dword [ebp + 8]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.00492e00
mov eax, dword [ebp + 8]
add esp, 0x24
cmp byte [ebp + 0x18], 0
mov word [eax + 0x1fe], 0xaa55
jne 0x45cb65
cmp dword [ebp + 0x20], 0x200
jbe 0x45cb65
mov word [ebx - 2], 0xaa55
push 8
push str.EFI_PART
push ebx
call fcn.004128b6
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp - 0x104]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x4c]
push dword [ebp + 8]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x100]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp + 0xc]
cdq
mov dword [ebp - 0x1cc], eax
add eax, dword [ebp + 0x48]
mov dword [ebp - 0x1c8], edx
adc edx, dword [ebp + 0x4c]
add eax, 1
adc edx, 0
mov dword [ebx + 0x20], ecx
sub ecx, dword [ebp - 0x1cc]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x100]
sbb eax, dword [ebp - 0x1c8]
add ecx, 0xffffffff
adc eax, 0xffffffff
mov dword [ebx + 8], 0x10000
mov dword [ebx + 0xc], 0x5c
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], eax
call fcn.0043bbe2
lea eax, [ebx + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 0x10
cmp ecx, 0x20323354
jne 0x45cc01
cmp edx, 0x2020
je 0x45cc3b
cmp ecx, 0x20363154
jne 0x45cc11
cmp edx, 0x2020
je 0x45cc3b
mov esi, ecx
or esi, edx
je 0x45cc35
cmp ecx, 0xffffffff
jne 0x45cc20
cmp edx, ecx
je 0x45cc35
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov esi, ecx
or esi, edx
je 0x45cc35
cmp ecx, 0xffffffff
jne 0x45cc59
cmp edx, ecx
jne 0x45cc59
mov esi, dword [ebp - 0xf8]
push 0xc
push 0x4af8b0
push eax
call fcn.004128b6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1b8]
add esp, 0xc
mov dword [ebx + 0x44], eax
jmp 0x45cc5f
mov esi, dword [ebp - 0xf8]
lea eax, [ebx - 0x174]
push eax
call fcn.0043bbe2
mov eax, dword [ebp + 0x48]
add eax, 1
pop ecx
mov ecx, dword [ebp + 0x4c]
adc ecx, 0
test edi, edi
mov dword [ebx + 0x48], eax
mov eax, 0x80
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
jg 0x45cca2
jl 0x45cc94
cmp esi, 1
jae 0x45cca2
or dword [ebp - 0xf8], 0xffffffff
or dword [ebp - 0xf4], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 8]
push 1
push dword [ebp + 0x40]
shl eax, 4
push dword [ebp + 0x3c]
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.0043bb50
lea eax, [edi + 0x1c3]
add esp, 0x20
cmp byte [ebp + 0x5e], 2
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov byte [eax], 0xfe
mov byte [ecx], 0xff
mov byte [edx], 0xfe
jne 0x45cd17
push 1
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push ecx
push eax
push edx
push dword [ebp - 0xf4]
push dword [ebp - 0xf8]
call fcn.0043bb50
add esp, 0x20
mov eax, dword [ebp + 0x48]
mov dword [edi + 0x1c6], eax
add edi, 0x1ca
or dword [edi], 0xffffffff
cmp byte [ebp + 0x5e], 2
jne 0x45d046
mov eax, dword [ebp - 0xf8]
mov dword [edi], eax
cmp byte [ebp + 0x5b], 0
jg 0x45d046
cmp byte [ebp - 0x4f], 0
jle 0x45cd55
cmp dword [ebp + 0x60], 0
jl 0x45d046
cmp byte [ebp + 0x67], 0
je 0x45cdab
or dword [ebp + 0x60], 0xffffffff
xor esi, esi
cmp dword [ebp + 0x34], esi
mov byte [ebp - 0x29], 0
jbe 0x45cdab
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x78], eax
mov edi, 0x80
push 0x10
push 0x4ac820
push dword [ebp - 0x78]
call fcn.00437f1d
add esp, 0xc
test eax, eax
je 0x45cd96
add dword [ebp - 0x78], edi
inc esi
cmp esi, dword [ebp + 0x34]
jb 0x45cd75
jmp 0x45cdab
mov dword [ebp + 0x60], esi
push edi
shl esi, 7
add esi, dword [ebp - 0x1c]
push 0
push esi
call fcn.00492e00
add esp, 0xc
mov eax, dword [ebp + 0x34]
dec dword [ebp - 0x64]
cmp dword [ebp + 0x60], eax
jae 0x45e1d5
cmp dword [ebp - 0x64], eax
jge 0x45e1d5
cmp byte [ebp - 0x29], 0
je 0x45cec3
xor ecx, ecx
cmp byte [ebp + 0x53], cl
je 0x45ce20
mov eax, dword [ebp - 0x1c]
add eax, 0x20
cmp ecx, dword [ebp + 0x34]
jae 0x45ce20
mov edx, dword [eax]
cmp edx, dword [ebp + 0x48]
jne 0x45cdee
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x4c]
je 0x45cdf6
inc ecx
add eax, 0x80
jmp 0x45cdda
mov edx, dword [ebp - 0x1c]
mov eax, ecx
shl eax, 7
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4ac820
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 0x45ce20
push 0x80
push 0
push eax
call fcn.00492e00
add esp, 0xc
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x1c]
shl eax, 7
push 0x10
add eax, ecx
push 0x4ac820
push eax
mov dword [ebp + 0x28], eax
call fcn.00437f1d
add esp, 0xc
test eax, eax
je 0x45cead
mov edi, dword [ebp + 0x60]
inc edi
cmp edi, dword [ebp + 0x34]
mov dword [ebp + 0x40], edi
jae 0x45e1d5
mov esi, edi
shl esi, 7
add esi, dword [ebp - 0x1c]
push 0x10
push 0x4ac820
push esi
call fcn.00437f1d
add esp, 0xc
test eax, eax
je 0x45ce7f
inc edi
add esi, 0x80
cmp edi, dword [ebp + 0x34]
mov dword [ebp + 0x40], edi
jb 0x45ce5a
jmp 0x45cea1
cmp edi, dword [ebp + 0x60]
jle 0x45cea1
mov eax, dword [ebp + 0x40]
mov edi, eax
shl edi, 7
add edi, dword [ebp - 0x1c]
sub eax, dword [ebp + 0x60]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x45ce92
mov eax, dword [ebp + 0x34]
cmp dword [ebp + 0x40], eax
jae 0x45e1d5
push 0x80
push 0
push dword [ebp + 0x28]
call fcn.00492e00
add esp, 0xc
and dword [ebp], 0
cmp byte [ebp + 0x5b], 1
je 0x45d027
mov eax, dword [ebp - 0x64]
xor ecx, ecx
cmp eax, ecx
jge 0x45cfe0
cmp dword [ebp], ecx
jne 0x45cf06
xor eax, eax
inc eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0x170], ecx
jle 0x45cf23
mov edi, dword [ebp + 0x60]
shl edi, 7
add edi, dword [ebp - 0x1c]
lea esi, [ebp - 0x1ac]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x180], ecx
jle 0x45cf44
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x1c]
shl eax, 7
lea edi, [eax + ecx + 0x10]
lea esi, [ebp - 0x214]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0x1c]
jle 0x45cf63
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x48]
shl edx, 7
mov dword [edx + eax + 0x20], esi
mov esi, dword [ebp + 0x4c]
mov dword [edx + eax + 0x24], esi
cmp dword [ebp - 0x174], ecx
jle 0x45cf85
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0xf8]
shl edx, 7
mov dword [edx + eax + 0x28], esi
mov esi, dword [ebp - 0xf4]
mov dword [edx + eax + 0x2c], esi
cmp dword [ebp - 0x17c], ecx
jle 0x45cfa7
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0x164]
shl edx, 7
mov dword [edx + eax + 0x30], esi
mov esi, dword [ebp - 0x160]
mov dword [edx + eax + 0x34], esi
cmp dword [ebp - 0xec], ecx
jle 0x45d027
mov eax, dword [ebp - 0xc]
cmp word [eax], 0
je 0x45d027
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x1c]
shl eax, 7
push 0x48
lea esi, [eax + ecx + 0x38]
push 0
push esi
call fcn.00492e00
add esp, 0xc
push 0x24
push dword [ebp - 0xc]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x45d027
cmp eax, dword [ebp + 0x60]
je 0x45d027
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x1c]
shl ecx, 7
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x34c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x64]
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 - 0x64]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x34c]
rep movsd dword es:[edi], dword [esi]
jge 0x45d027
mov dword [ebp + 0x60], eax
cmp byte [ebp + 7], 0
je 0x45d046
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0x1c]
push 0x80
push 0
push eax
call fcn.00492e00
add esp, 0xc
and dword [ebp + 0x40], 0
cmp byte [ebp - 0x4f], 1
jne 0x45d170
cmp byte [ebp + 0x5b], 1
je 0x45d170
and dword [ebp - 0x98], 0
mov eax, dword [ebp + 0x34]
and dword [ebp + 0x1c], 0
dec eax
test eax, eax
mov dword [ebp - 0x78], eax
jl 0x45d170
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x3c], eax
xor esi, esi
push 0x10
push 0x4ac820
push dword [ebp + 0x10]
call fcn.00437f1d
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x18], al
jne 0x45d0ae
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp - 0x98]
mov dword [ebp + 0x28], esi
je 0x45d0b5
mov dword [ebp + 0x28], 1
cmp byte [ebp + 0x18], 0
mov dword [ebp], esi
jne 0x45d12e
mov eax, dword [ebp - 0x98]
cmp dword [ebp + 0x1c], eax
je 0x45d11f
push 0x38
push dword [ebp + 0x10]
push dword [ebp + 0x3c]
call fcn.00495380
add esp, 0xc
test eax, eax
je 0x45d0f4
push 0x38
push dword [ebp + 0x10]
mov dword [ebp], 1
push dword [ebp + 0x3c]
call fcn.004934b0
add esp, 0xc
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0x3c]
push 0x24
add esi, 0x38
push esi
add edi, 0x38
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
je 0x45d11f
push 0x24
push esi
push edi
mov dword [ebp], 1
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
inc dword [ebp - 0x98]
add dword [ebp + 0x3c], 0x80
xor esi, esi
cmp dword [ebp + 0x28], esi
je 0x45d14e
cmp byte [ebp + 0x18], 0
jne 0x45d14e
push 0x10
push esi
push dword [ebp + 0x10]
mov dword [ebp], 1
call fcn.00492e00
add esp, 0xc
cmp dword [ebp], esi
je 0x45d15a
mov eax, dword [ebp + 0x1c]
inc eax
mov dword [ebp + 0x40], eax
inc dword [ebp + 0x1c]
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x10], 0x80
cmp eax, dword [ebp - 0x78]
jle 0x45d083
push 8
push str.EFI_PART
push ebx
call fcn.004128b6
push dword [ebp + 8]
call fcn.0043bbe2
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov edx, eax
add esp, 0x10
or edx, ecx
je 0x45d19d
cmp eax, 0xffffffff
jne 0x45d1aa
cmp ecx, eax
jne 0x45d1aa
lea eax, [ebx - 0x174]
push eax
call fcn.0043bbe2
pop ecx
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x40], eax
jg 0x45d1b6
inc eax
mov dword [ebp + 0x40], eax
cmp byte [ebp + 0x5b], 1
mov eax, dword [ebp + 0x34]
jne 0x45d1c2
mov dword [ebp + 0x40], eax
push 0
shl eax, 7
push 0
push eax
push dword [ebp - 0x1c]
call fcn.0048669a
mov esi, dword [ebx + 0xc]
add esp, 0x10
cmp esi, 0x20000
mov dword [ebx + 0x58], eax
ja 0x45e1d5
xor eax, eax
push eax
push eax
push esi
push ebx
mov dword [ebx + 0x10], eax
call fcn.0048669a
mov edi, dword [ebp - 0x15c]
push esi
push ebx
push edi
mov dword [ebx + 0x10], eax
call fcn.004128b6
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x1c]
and dword [edi + 0x10], 0
mov dword [edi + 0x24], eax
push 0
xor eax, eax
push eax
push esi
push edi
call fcn.0048669a
mov esi, dword [ebp + 0x20]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0xc]
add esp, 0x2c
inc eax
imul eax, esi
push eax
lea ecx, [ebp - 0x20]
call fcn.0043dc74
mov eax, dword [ebp - 0x20]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x40]
shl eax, 7
lea eax, [eax + esi - 1]
xor edx, edx
div esi
push 0
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
imul eax, esi
mov dword [ebp - 0x15c], eax
call fcn.0043908b
add esp, 0x10
push esi
push dword [ebp - 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00402b74
push esi
push dword [ebp + 8]
push dword [ebp - 0x20]
call fcn.00495380
add esp, 0xc
test eax, eax
je 0x45d2b5
push 0
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
push esi
push dword [ebp + 8]
lea ecx, [ebp + 0x6c]
call fcn.00437d7d
mov eax, dword [ebp - 0x15c]
xor edx, edx
div esi
mov ecx, dword [ebp - 0x88]
xor edx, edx
push edx
push ecx
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0xc0], ecx
inc eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 0x8c]
push eax
push edx
push esi
mov dword [ebp - 0xc4], eax
call fcn.00492f10
add eax, dword [ebp - 0x40]
adc edx, dword [ebp - 0x3c]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043908b
mov eax, dword [ebp + 0x10]
imul eax, esi
add esp, 0x10
push eax
push dword [ebp - 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00402b74
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
jle 0x45d3e3
jmp 0x45d343
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x34]
call fcn.00495380
add esp, 0xc
test eax, eax
jne 0x45d348
inc ebx
add dword [ebp - 0xc4], 1
adc dword [ebp - 0xc0], eax
add dword [ebp + 0x20], esi
add dword [ebp + 0x34], esi
cmp ebx, dword [ebp + 0x10]
jl 0x45d31c
cmp ebx, dword [ebp + 0xc]
jge 0x45d3e3
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x1f8], eax
jmp 0x45d399
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x34]
call fcn.00495380
add esp, 0xc
test eax, eax
je 0x45d39e
inc ebx
add dword [ebp - 0xc4], 1
adc dword [ebp - 0xc0], 0
add dword [ebp + 0x20], esi
add dword [ebp + 0x34], esi
cmp ebx, dword [ebp + 0x10]
jl 0x45d371
push 0
push dword [ebp - 0x1f8]
xor eax, eax
push dword [ebp - 0x1fc]
push eax
push esi
call fcn.00492f10
add eax, dword [ebp - 0x40]
adc edx, dword [ebp - 0x3c]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043908b
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x28]
add esp, 0x10
push eax
push dword [ebp + 0x28]
lea ecx, [ebp + 0x6c]
call fcn.00437d7d
cmp ebx, dword [ebp + 0x10]
jl 0x45d31c
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x104]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0xc]
cdq
sub ebx, eax
mov eax, dword [ebp - 0x100]
push 0
sbb eax, edx
push eax
mov dword [ebp - 0xc0], eax
push ebx
xor eax, eax
push eax
push esi
call fcn.00492f10
add eax, dword [ebp - 0x40]
adc edx, dword [ebp - 0x3c]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043908b
mov eax, dword [ebp + 0xc]
imul eax, esi
add esp, 0x10
push eax
push dword [ebp - 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00402b74
and dword [ebp + 0x40], 0
cmp dword [ebp + 0xc], 0
jle 0x45d51c
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x40], eax
jge 0x45d51c
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x34]
call fcn.00495380
add esp, 0xc
test eax, eax
jne 0x45d482
inc dword [ebp + 0x40]
add ebx, 1
adc dword [ebp - 0xc0], eax
mov eax, dword [ebp + 0x40]
add dword [ebp + 0x20], esi
add dword [ebp + 0x34], esi
cmp eax, dword [ebp + 0xc]
jl 0x45d455
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x40], eax
jge 0x45d51c
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x1e0], eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x34]
call fcn.00495380
add esp, 0xc
test eax, eax
je 0x45d4d4
inc dword [ebp + 0x40]
mov eax, dword [ebp + 0x40]
add ebx, 1
adc dword [ebp - 0xc0], 0
add dword [ebp + 0x20], esi
add dword [ebp + 0x34], esi
cmp eax, dword [ebp + 0xc]
jl 0x45d4a6
push 0
push dword [ebp - 0x1e0]
xor eax, eax
push dword [ebp - 0x1e4]
push eax
push esi
call fcn.00492f10
add eax, dword [ebp - 0x40]
adc edx, dword [ebp - 0x3c]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043908b
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x28]
add esp, 0x10
push eax
push dword [ebp + 0x28]
lea ecx, [ebp + 0x6c]
call fcn.00437d7d
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x40], eax
jl 0x45d449
push dword [ebp - 0x100]
xor eax, eax
push dword [ebp - 0x104]
push eax
push esi
call fcn.00492f10
mov ebx, eax
add ebx, dword [ebp - 0x40]
push 0
adc edx, dword [ebp - 0x3c]
push edx
push ebx
push dword [ebp + 0x6c]
mov dword [ebp - 0x138], edx
call fcn.0043908b
add esp, 0x10
push esi
push dword [ebp - 0x20]
lea ecx, [ebp + 0x6c]
call fcn.00402b74
push esi
push edi
push dword [ebp - 0x20]
call fcn.00495380
add esp, 0xc
test eax, eax
je 0x45d589
push 0
push dword [ebp - 0x138]
push ebx
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
push esi
push edi
lea ecx, [ebp + 0x6c]
call fcn.00437d7d
mov al, byte [ebp + 0x5d]
or al, byte [ebp + 0x5c]
lea ecx, [ebp - 0x20]
or al, byte [ebp + 0x27]
je 0x45e61d
and dword [ebp + 0x3c], 0
call fcn.00437e1a
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
mov bl, byte [ebp + 0x17]
xor edi, edi
cmp dword [ebp - 0x48], edi
jl 0x45d652
cmp bl, 0x20
je 0x45d5d4
cmp bl, 0x10
jne 0x45d5da
cmp dword [ebp - 0x14], 0xb
je 0x45d5fe
test byte [ebp + 0x5c], 0x20
jne 0x45d5fe
cmp byte [ebp + 0x5c], 0
je 0x45d5ec
cmp dword [ebp - 0x14], 0xb
je 0x45d5fe
test byte [ebp + 0x5d], 0x20
jne 0x45d5fe
cmp byte [ebp + 0x5d], 0
je 0x45d652
cmp dword [ebp - 0x14], 0xb
jne 0x45d652
cmp byte [ebp - 0x2c], 0
jg 0x45d6b2
test byte [0x4c1308], 0x20
jne 0x45d623
test byte [ebp + 0x68], 0x20
jne 0x45d623
push 1
push dword [ebp - 0x48]
call fcn.0044aadc
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4c1308], 0x10
jne 0x45d64e
test byte [ebp + 0x68], 0x11
jne 0x45d64e
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x48]
call fcn.00404d93
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp - 0x2c], 0
jg 0x45d6b2
cmp byte [ebp + 0x27], 0
jne 0x45d66e
cmp bl, 1
je 0x45d66e
cmp bl, 0x20
je 0x45d66e
cmp byte [ebp + 0x5c], 0
je 0x45d6b2
push dword [ebp + 0x6c]
call fcn.0043bbca
pop ecx
push edi
lea eax, [ebp - 0x1d0]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x1d0], edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45d69f
xor eax, eax
jmp 0x45d6a5
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp bl, 1
je 0x45d6af
cmp bl, 0x20
jne 0x45d6b2
mov dword [ebp - 0x80], eax
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
xor esi, esi
test byte [ebp + 0x5d], 0x20
jne 0x45d6d9
cmp byte [ebp + 0x5d], 0
je 0x45d6ce
cmp dword [ebp - 0x14], 0xb
je 0x45d6d9
cmp bl, 0x10
jne 0x45d705
cmp dword [ebp - 0x14], 0xc
je 0x45d705
lea ecx, [ebp + 0x68]
call fcn.0043bc10
cmp byte [ebp - 0x2c], 0
jg 0x45d705
push 0x4a7cf0
push 1
push edi
push dword [ebp - 0xfc]
call fcn.004420c2
add esp, 0x10
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp byte [ebp + 0x47], 0
je 0x45e5ec
cmp dword [ebp + 0x3c], edi
je 0x45e5ec
xor ebx, ebx
or esi, 0xffffffff
jmp 0x45b098
cmp dword [ebp - 0x28], ebx
jge 0x45d736
mov ecx, dword [ebp - 0xb4]
cmp word [ecx], bx
je 0x45bd82
mov edi, 0x1b8
mov dword [ebp + 0x40], edi
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x190], ebx
mov dword [ebp - 0x18c], ebx
cmp word [eax], bx
je 0x45d890
push dword [ebp - 0x18]
push 0x4af8ac
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x45d890
push dword [ebp - 0x18]
push 0x4aaef0
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x45d890
mov edi, dword [ebp - 0x18]
push edi
push 0x4af8a8
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x45d7ae
mov dword [ebp - 0x14], 0x4bf340
mov dword [ebp + 0x40], 0x190
jmp 0x45d8ac
push edi
push 0x4af8a4
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x45d7d2
mov dword [ebp - 0x14], 0x4bf4d0
mov dword [ebp + 0x40], 0x180
jmp 0x45d8ac
mov dword [ebp + 0x40], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], esi
jne 0x45d809
lea eax, [ebp - 0x8c]
push eax
inc edi
lea eax, [ebp - 0x18]
inc edi
push eax
mov dword [ebp - 0x18], edi
call fcn.004428d3
mov edi, dword [ebp - 0x18]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45d809
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45d847
push edi
lea ecx, [ebp + 0x28]
call fcn.00446497
push ebx
lea eax, [ebp - 0x194]
push eax
push str.EXEDATA
push dword [ebp + 0x28]
push ebx
call fcn.00413369
add esp, 0x14
lea ecx, [ebp + 0x28]
mov dword [ebp - 0x14], eax
call fcn.00437e1a
mov eax, dword [ebp - 0x190]
mov dword [ebp + 0x40], eax
jmp 0x45d85e
lea eax, [ebp + 0x40]
push eax
push ebx
push edi
call fcn.0040e9a0
add esp, 0xc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x88], ebx
jl 0x45d89a
jg 0x45d870
cmp dword [ebp - 0x8c], ebx
jb 0x45d89a
cmp ebx, dword [ebp - 0x88]
jl 0x45d89a
jg 0x45d885
mov eax, dword [ebp + 0x40]
cmp eax, dword [ebp - 0x8c]
jbe 0x45d89a
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x40], eax
jmp 0x45d89a
mov dword [ebp - 0x14], 0x4bf650
mov dword [ebp + 0x40], edi
cmp dword [ebp + 0x40], ebx
jbe 0x45da43
cmp dword [ebp - 0x14], ebx
je 0x45da43
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xfc]
lea ecx, [ebp + 0x6c]
call fcn.004051d2
cmp dword [ebp + 0x6c], ebx
je 0x45da43
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.0043b675
cmp eax, esi
pop ecx
pop ecx
jl 0x45d8e9
mov esi, eax
mov ecx, dword [ebp + 0x40]
lea eax, [esi - 1]
lea ebx, [eax + ecx]
not eax
and ebx, eax
lea eax, [esi + esi*2]
push eax
lea ecx, [ebp - 0xc]
call fcn.0043dc74
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xac]
lea edi, [esi - 1]
add eax, esi
not edi
and edi, eax
add esi, edi
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0xa8]
je 0x45d934
push edx
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
cmp eax, dword [ebp - 0x40]
jne 0x45da1e
cmp edx, dword [ebp - 0x3c]
jne 0x45da1e
push 0
lea eax, [ebp - 0x54]
push eax
push ebx
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45da1e
push ebx
push esi
push edi
call fcn.004128b6
mov ecx, dword [ebp + 0x40]
mov eax, 0x1b8
add esp, 0xc
cmp ecx, eax
jle 0x45d978
mov ecx, eax
push ecx
push dword [ebp - 0x14]
push esi
call fcn.004128b6
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x40]
add esp, 0xc
cmp eax, 0x200
jbe 0x45d9bb
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x200
push eax
lea eax, [esi + 0x200]
push eax
call fcn.004128b6
add esp, 0xc
push ebx
push esi
push edi
call fcn.0043e050
add esp, 0xc
test eax, eax
jne 0x45da06
push eax
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x10
cmp eax, dword [ebp - 0x40]
jne 0x45da1e
cmp edx, dword [ebp - 0x3c]
jne 0x45da1e
push 0
lea eax, [ebp - 0x54]
push eax
push ebx
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.0043bbca
test esi, esi
pop ecx
je 0x45da1e
lea ecx, [ebp - 0xc]
call fcn.00437e1a
lea ecx, [ebp - 0x194]
call fcn.00437e1a
jmp 0x45e63a
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x45da2b
inc esi
lea ecx, [ebp - 0xc]
call fcn.00437e1a
lea ecx, [ebp - 0x194]
call fcn.00437e1a
jmp 0x45e3cb
lea ecx, [ebp - 0x194]
call fcn.00437e1a
jmp 0x45e390
cmp dword [ebp + 0x60], ebx
jle 0x45bd82
cmp dword [ebp - 0x28], ebx
jge 0x45da70
mov eax, dword [ebp - 0xb4]
cmp word [eax], bx
je 0x45bd82
xor eax, eax
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], eax
mov dword [ebp + 0x28], esi
jge 0x45da8f
xor al, al
jne 0x45dab9
jmp 0x45bd82
push dword [ebp - 0x60]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 0x164]
push eax
push ecx
push dword [ebp + 0x60]
lea eax, [ebp - 4]
push dword [ebp - 0x28]
push eax
call fcn.004592c5
add esp, 0x1c
cmp dword [ebp + 0x28], ebx
jle 0x45e390
mov edi, dword [ebp - 0xb0]
mov dword [ebp - 0x18], 0x200
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
cmp word [edi], bx
je 0x45dc50
push edi
push 0x4af8ac
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x45dc50
push edi
push 0x4aaef0
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x45dc50
push edi
push 0x4af8a4
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x45db23
push 8
jmp 0x45dc52
push edi
push str.nt6fat
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x45dc4c
push edi
push str.winfat
call fcn.004391ba
test al, al
pop ecx
pop ecx
jne 0x45dc4c
push edi
push 0x4af8a8
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x45db65
push 6
jmp 0x45dc52
push edi
push str.nt5fat
call fcn.004391ba
test al, al
pop ecx
pop ecx
je 0x45db7d
push 5
jmp 0x45dc52
mov dword [ebp - 0x18], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], esi
jne 0x45dbbd
lea eax, [ebp - 0x8c]
push eax
inc edi
lea eax, [ebp - 0xb0]
inc edi
push eax
mov dword [ebp - 0xb0], edi
call fcn.004428d3
mov edi, dword [ebp - 0xb0]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45dbbd
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45dbfb
push edi
lea ecx, [ebp + 0x28]
call fcn.00446497
push ebx
lea eax, [ebp - 0x140]
push eax
push str.EXEDATA
push dword [ebp + 0x28]
push ebx
call fcn.00413369
add esp, 0x14
lea ecx, [ebp + 0x28]
mov dword [ebp - 0x14], eax
call fcn.00437e1a
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x18], eax
jmp 0x45dc12
lea eax, [ebp - 0x18]
push eax
push ebx
push edi
call fcn.0040e9a0
add esp, 0xc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x88], ebx
jl 0x45dc42
jg 0x45dc24
cmp dword [ebp - 0x8c], ebx
jb 0x45dc42
cmp ebx, dword [ebp - 0x88]
jl 0x45dc42
jg 0x45dc39
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x8c]
jbe 0x45dc42
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x14], ebx
jne 0x45dc7b
jmp 0x45dcf1
push 7
jmp 0x45dc52
push 9
pop eax
push ebx
lea ecx, [ebp - 0x140]
push ecx
push str.INDATA
push eax
push ebx
call fcn.00413369
add esp, 0x14
cmp dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], eax
je 0x45dcf1
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jbe 0x45dcf1
cmp dword [ebp - 0x14], ebx
je 0x45dcf1
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xfc]
lea ecx, [ebp + 0x6c]
call fcn.004051d2
cmp dword [ebp + 0x6c], ebx
je 0x45dcf1
push ebx
push 0x200
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
call fcn.00492f10
mov esi, eax
add esi, dword [ebp - 0x164]
mov edi, edx
adc edi, dword [ebp - 0x160]
push ebx
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], edi
call fcn.0043908b
add esp, 0x10
cmp eax, esi
jne 0x45dcf1
cmp edx, edi
je 0x45dcfc
lea ecx, [ebp - 0x140]
jmp 0x45da49
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.0043b675
cmp eax, esi
pop ecx
pop ecx
jge 0x45dd12
mov eax, esi
mov ecx, dword [ebp - 0x18]
dec eax
lea esi, [eax + ecx]
not eax
and esi, eax
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp]
call fcn.0043dc74
mov ebx, dword [ebp]
push 0
lea eax, [ebp - 0x54]
push eax
add ebx, 0x200
and ebx, 0xfffffe00
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x45dd83
lea ecx, [ebp]
call fcn.00437e1a
lea ecx, [ebp - 0x140]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
test eax, eax
jmp 0x45e3a7
push esi
push edi
push ebx
call fcn.004128b6
push 0
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
push dword [ebp + 0x6c]
call fcn.0043908b
add esp, 0x1c
cmp eax, dword [ebp - 0xd4]
jne 0x45dd54
cmp edx, dword [ebp - 0xd0]
jne 0x45dd54
mov eax, dword [ebp - 0x18]
push 3
push dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
push edi
call fcn.004128b6
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0xc], eax
jle 0x45ddd5
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.004128b6
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp - 0x18]
add esp, 0xc
cmp eax, 0x200
jbe 0x45de25
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x14]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.004128b6
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x3c], 1
call fcn.0043e050
add esp, 0xc
test eax, eax
jne 0x45de57
push eax
lea eax, [ebp - 0x54]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.0043bbca
pop ecx
xor eax, eax
cmp dword [ebp + 0x3c], eax
lea ecx, [ebp]
sete al
mov esi, eax
call fcn.00437e1a
lea ecx, [ebp - 0x140]
jmp 0x45da39
push 0x103c
lea ecx, [ebp - 4]
call fcn.0043ddc3
mov esi, dword [ebp - 4]
mov ax, word [edi]
add esi, 0x2000
cmp ax, bx
mov dword [ebp + 0x1c], 0x4a7cf0
je 0x45dee0
cmp word [edi + 2], 0x3a
jne 0x45dee0
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 0x45ded2
cmp dword [ebp - 0xa0], 0x10
jne 0x45df2f
mov dword [ebp + 0x1c], 0x4a7cd0
cmp eax, 5
jne 0x45df2f
mov dword [ebp + 0x1c], 0x4a7ce0
jmp 0x45df2f
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jl 0x45df2f
cmp dword [ebp - 0xa0], 8
jne 0x45df06
push eax
push 0x4af864
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov dword [ebp + 0x1c], 0x4a7ce0
jmp 0x45df2c
cmp dword [ebp - 0xa0], 0x10
jne 0x45df1f
and eax, 0xfff
mov esi, eax
mov dword [ebp + 0x1c], 0x4a7cd0
jmp 0x45df2f
push eax
push str..PhysicalDrive_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push dword [ebp + 0x1c]
push 0x20
push dword [ebp - 4]
push esi
call fcn.004420c2
add esp, 0x10
jmp 0x45e72c
cmp byte [ebp - 0x2d], 0
je 0x45df54
cmp dword [ebp - 0x48], ebx
jl 0x45e70e
mov al, byte [ebp - 0x2a]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x48]
or eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 4]
push eax
call fcn.00458f0f
pop ecx
pop ecx
jmp 0x45e70e
cmp dword [ebp - 0x48], ebx
jl 0x45e70e
cmp byte [ebp - 0x49], 0
je 0x45df92
cmp dword [ebp + 0x60], ebx
jl 0x45e70e
push dword [ebp - 0x60]
movsx eax, byte [ebp - 0x2a]
push ebx
push ebx
or eax, ecx
push eax
push dword [ebp + 0x60]
lea eax, [ebp - 4]
push dword [ebp - 0x48]
push eax
call fcn.004592c5
add esp, 0x1c
jmp 0x45e70e
mov di, word [edi]
movzx esi, di
and esi, 0xffffffdf
cmp esi, 0x41
jl 0x45e706
cmp esi, 0x5a
jg 0x45e706
cmp dword [ebp - 0xa0], ebx
jle 0x45e04d
push 0x488
lea ecx, [ebp - 0xc]
call fcn.0043dc74
mov edi, dword [ebp - 0xc]
push 0x288
add edi, 0x200
push ebx
push edi
call fcn.00492e00
mov eax, esi
shl eax, 0x10
or eax, dword [ebp - 0xa0]
push eax
push dword [ebp - 0xc]
push edi
call fcn.0044a371
lea eax, [esi + esi*2 - 0xc3]
lea edi, [edi + eax*8]
add esp, 0x18
cmp dword [edi + 8], ebx
jle 0x45e040
push 0x64
lea ecx, [ebp - 4]
call fcn.0043ddc3
push esi
push dword [edi + 4]
push str._d__c:
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp - 0xc]
call fcn.00437e1a
jmp 0x45e706
mov eax, dword [ebp - 4]
mov word [eax], di
mov eax, dword [ebp - 4]
cmp word [eax], bx
je 0x45e706
push dword [ebp - 0x60]
and ecx, 0xfffffffd
push ebx
push ebx
or ecx, 0xc
push ecx
push dword [ebp + 0x60]
lea eax, [ebp - 4]
push dword [ebp - 0x48]
push eax
call fcn.004592c5
add esp, 0x1c
jmp 0x45e706
cmp dword [ebp - 0x28], ebx
jge 0x45e0f2
cmp word [edi], bx
je 0x45e0ee
cmp word [edi + 2], 0x3a
jne 0x45e0e1
cmp word [edi + 4], 0x5c
jne 0x45e0a4
cmp word [edi + 6], bx
jne 0x45e0a4
mov word [edi + 4], bx
cmp word [edi + 4], bx
jne 0x45e0e1
push 9
lea ecx, [ebp + 0x54]
call fcn.0043ddc3
mov eax, dword [ebp + 0x54]
mov word [eax], 0x5c
mov word [eax + 2], 0x5c
mov word [eax + 4], 0x2e
mov word [eax + 6], 0x5c
mov cx, word [edi]
mov word [eax + 8], cx
mov word [eax + 0xa], 0x3a
mov word [eax + 0xc], bx
jmp 0x45e0ee
push esi
push edi
lea ecx, [ebp + 0x54]
call fcn.0043dea2
mov eax, dword [ebp + 0x54]
mov ecx, esi
jmp 0x45e0f5
mov ecx, dword [ebp + 0x60]
cmp ecx, ebx
jg 0x45e0fb
mov ecx, esi
push eax
push ecx
push dword [ebp - 0x28]
lea eax, [ebp - 4]
push eax
call fcn.00404b6c
jmp 0x45e703
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x54]
mov esi, eax
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, ebx
jmp 0x45e60b
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, ebx
jmp 0x45b0e1
lea ecx, [ebp - 0x38]
jmp 0x45e62d
lea ecx, [ebp - 0x38]
jmp 0x45e1f8
lea ecx, [ebp - 0x38]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, esi
jmp 0x45bd99
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, ebx
je 0x45b059
push eax
jmp 0x45b053
lea ecx, [ebp - 0x44]
call fcn.00437e1a
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
jmp 0x45b5c0
lea ecx, [ebp - 0x44]
call fcn.00437e1a
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
jmp 0x45dd67
push 0x28
lea ecx, [ebp - 4]
call fcn.0043ddc3
mov esi, dword [ebp + 0x60]
mov ebx, dword [ebp - 4]
xor ecx, ecx
test esi, esi
push 4
mov dword [ebp - 0xc], 0x4a69d4
pop eax
jl 0x45e23d
lea edx, [esi + 1]
cmp edx, eax
mov ecx, esi
jge 0x45e235
mov eax, edx
cmp esi, eax
jge 0x45e340
mov esi, dword [ebp + 0x10]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [ecx + 1]
mov dword [ebp - 0x60], edx
mov edx, ecx
shl edx, 4
sub eax, ecx
lea esi, [edx + esi + 0x1c6]
mov dword [ebp + 0x28], eax
cmp dword [ebp + 0x60], 0
mov al, byte [esi - 4]
mov byte [ebp - 0x2b], al
jge 0x45e2a9
cmp al, 5
je 0x45e276
cmp al, 0xf
mov ecx, 0x4a69d4
jne 0x45e27b
mov ecx, 0x4af860
xor edx, edx
test al, al
setne dl
lea edx, [edx + edx - 1]
imul edx, dword [ebp - 0x60]
push edx
push ecx
push dword [ebp - 0xc]
push str._s_s_d
push ebx
call edi
add esp, 0x14
lea ebx, [ebx + eax*2]
mov dword [ebp - 0xc], 0x4a7360
jmp 0x45e331
test al, al
je 0x45e331
push dword [ebp - 0x60]
push dword [ebp - 0xc]
push str._s_d
push ebx
call edi
add esp, 0x10
test byte [ebp - 0x34], 1
lea ebx, [ebx + eax*2]
mov eax, str._0x_X
jne 0x45e2d5
mov eax, 0x4af830
movzx ecx, byte [ebp - 0x2b]
push ecx
push eax
push ebx
call edi
lea ebx, [ebx + eax*2]
movzx eax, byte [esi - 8]
shr eax, 7
push eax
push 0x4af830
push ebx
call edi
lea ebx, [ebx + eax*2]
mov eax, dword [esi]
mov ecx, 0x200
mul ecx
push str.__I64u
push edx
push eax
push ebx
call fcn.004878ba
add esp, 0x28
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea ebx, [ebx + eax*2]
mov eax, dword [esi + 4]
mov ecx, 0x200
mul ecx
push str.__I64u
push edx
push eax
push ebx
call fcn.004878ba
add esp, 0x10
inc dword [ebp - 0x60]
add esi, 0x10
dec dword [ebp + 0x28]
jne 0x45e25d
cmp dword [ebp - 0xf0], 0
jle 0x45e35f
push dword [ebp - 0xf0]
lea eax, [ebp - 4]
push dword [ebp - 0xbc]
call fcn.00442814
pop ecx
pop ecx
push dword [ebp - 4]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xb8]
call fcn.0043d658
jmp 0x45e622
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, ebx
je 0x45afc8
push eax
jmp 0x45afc2
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
test eax, eax
jmp 0x45e60b
lea eax, [eax + eax*4]
shl eax, 1
push eax
lea ecx, [ebp - 4]
call fcn.0043ddc3
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 0x34]
xor ecx, ecx
test edx, edx
mov dword [ebp - 0xc], 0x4a69d4
jl 0x45e414
mov ecx, edx
inc edx
cmp eax, edx
jle 0x45e414
mov eax, edx
cmp ecx, eax
jge 0x45e587
mov ebx, dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea edx, [ecx + 1]
mov dword [ebp - 0x44], edx
mov edx, ecx
shl edx, 7
add edx, dword [ebp - 0x1c]
sub eax, ecx
mov dword [ebp - 0xec], edx
mov dword [ebp + 0x28], eax
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne 0x45e454
mov ecx, dword [eax + 8]
or ecx, dword [eax + 0xc]
je 0x45e571
cmp dword [ebp + 0x60], 0
push dword [ebp - 0x44]
push dword [ebp - 0xc]
jge 0x45e47b
push str._s_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0xc], 0x4a7360
jmp 0x45e56e
push 0x4af814
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x1c]
lea esi, [esi + eax*2]
mov eax, dword [ebp + 0x60]
shl eax, 7
lea edi, [eax + ecx]
push 0
push edi
push esi
call fcn.0043b87d
add esp, 0x1c
push esi
call ebx
lea esi, [esi + eax*2]
push str._GPT
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
push 0
push 0x200
push dword [edi + 0x24]
add esi, 0xa
push dword [edi + 0x20]
call fcn.00492f10
push edx
push eax
push esi
call fcn.004878e2
add esp, 0xc
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
inc esi
inc esi
sub eax, dword [edi + 0x20]
push 0
sbb ecx, dword [edi + 0x24]
add eax, 1
push 0x200
adc ecx, 0
push ecx
push eax
call fcn.00492f10
push edx
push eax
push esi
call fcn.004878e2
add esp, 0xc
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
push str._016I64X
push dword [edi + 0x34]
inc esi
push dword [edi + 0x30]
inc esi
push esi
call fcn.004878ba
add esp, 0x10
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
push 0
inc esi
add edi, 0x10
inc esi
push edi
push esi
call fcn.0043b87d
add esp, 0xc
test byte [ebp - 0x34], 0x10
je 0x45e571
push esi
call ebx
push dword [ebp - 0x44]
lea esi, [esi + eax*2]
mov word [esi], 0x20
inc esi
inc esi
push 0x4a7164
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea esi, [esi + eax*2]
add dword [ebp - 0xec], 0x80
inc dword [ebp - 0x44]
dec dword [ebp + 0x28]
jne 0x45e43b
xor esi, esi
cmp dword [ebp - 0xf0], esi
jle 0x45e5a7
push dword [ebp - 0xf0]
lea eax, [ebp - 4]
push dword [ebp - 0xbc]
call fcn.00442814
pop ecx
pop ecx
push dword [ebp - 4]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xb8]
call fcn.0043d658
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, esi
jmp 0x45e60b
cmp bl, 0x10
je 0x45e5f4
mov esi, dword [ebp - 0x80]
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, edi
je 0x45e762
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45e762
call fcn.00437e1a
lea ecx, [ebp + 8]
call fcn.00437e1a
lea ecx, [ebp - 0x10]
call fcn.00437e1a
lea ecx, [ebp + 0x54]
call fcn.00437e1a
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
test eax, eax
jmp 0x45e757
push 0x1000
lea ecx, [ebp - 4]
call fcn.0043ddc3
cmp dword [ebp - 0x28], ebx
jl 0x45e6e0
push 0x488
lea ecx, [ebp + 0x28]
call fcn.0043dc74
mov edi, dword [ebp + 0x28]
push 0x288
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.00492e00
push dword [ebp - 0xa0]
push edi
push esi
call fcn.0044a371
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x28]
cmp dword [eax], ecx
je 0x45e6b1
inc edi
add eax, 0x18
cmp edi, 0x1a
jle 0x45e69f
jmp 0x45e6d8
push 0x64
lea ecx, [ebp - 4]
call fcn.0043ddc3
lea eax, [edi + edi*2]
lea eax, [esi + eax*8]
push dword [eax + 0x10]
push dword [eax + 4]
push str._d___c_
push dword [ebp - 4]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x28]
jmp 0x45e043
cmp byte [ebp - 0x2d], 0
jne 0x45e706
cmp byte [ebp + 0x5f], 4
mov eax, 0x4a7ce0
je 0x45e6f6
mov eax, 0x4a7cd0
push eax
push ebx
push dword [ebp - 4]
push dword [ebp - 0x28]
call fcn.004420c2
add esp, 0x10
lea ecx, [ebp + 0x54]
call fcn.00437e1a
cmp dword [ebp - 0xf0], ebx
jle 0x45e72c
push dword [ebp - 0xf0]
lea eax, [ebp - 4]
push dword [ebp - 0xbc]
call fcn.00442814
pop ecx
pop ecx
push dword [ebp - 4]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xb8]
call fcn.0043d658
lea ecx, [ebp + 0x68]
call fcn.0043bc10
lea ecx, [ebp + 0x6c]
call fcn.00402b5a
mov eax, 0x4c1740
cmp eax, ebx
je 0x45e760
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
lea ecx, [ebp - 0xb4]
call fcn.00437e1a
lea ecx, [ebp - 0xb8]
call fcn.00437e1a
lea ecx, [ebp - 0x108]
call fcn.00437e1a
lea ecx, [ebp - 0x1dc]
call fcn.00437e1a
lea ecx, [ebp - 4]
call fcn.00437e1a
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8