Function at 0x462875
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 - 0xb8], ecx
call fcn.0043dcd9
pop ecx
push 5
lea ecx, [ebp + 0xc]
call fcn.004441bf
push 0x14
lea ecx, [ebp - 0x1cc]
call fcn.004441bf
lea ecx, [ebp - 0xcc]
call fcn.004441a1
lea ecx, [ebp - 0xbc]
call fcn.004441a1
lea ecx, [ebp - 0xc0]
call fcn.004441a1
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x34], eax
push 0x2c
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x34]
push eax
mov dword [ebp + 4], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x14], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
mov byte [ebp - 0x46], bl
mov byte [ebp - 0x29], bl
mov byte [ebp - 0x75], bl
mov byte [ebp - 0x7d], bl
mov byte [ebp + 0x5e], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp - 0x26], bl
mov byte [ebp - 0xa2], bl
mov byte [ebp - 0x2a], bl
mov dword [ebp - 0x84], ebx
call fcn.00446f11
mov eax, dword [ebp - 0xbc]
mov word [eax], bx
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x4629b7
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x34], eax
push 0x2c
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00446f11
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x1e], 0
mov byte [ebp + 0x66], 0
mov byte [ebp - 0x95], 0xff
mov byte [ebp + 0xb], 0
mov byte [ebp - 0x47], 0
mov byte [ebp - 0x7e], 0
mov byte [ebp + 0x1c], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x26], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x65], 0
mov byte [ebp + 0x64], 0
mov byte [ebp - 0x49], 0
mov byte [ebp - 0x28], 0xff
mov byte [ebp + 3], 0xff
mov byte [ebp - 0x27], 0
mov dword [ebp - 0x88], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x5c], 0
mov byte [ebp + 2], 0
mov dword [ebp - 0x60], 0xfffff000
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x64], esi
je 0x4633c7
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462a5f
or byte [ebp + 0x1e], 1
jmp 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462a7f
or byte [ebp + 0x1e], 2
jmp 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462aa2
or byte [ebp - 0x11e], 1
jmp 0x463343
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462ac5
or byte [ebp - 0x11e], 2
jmp 0x463343
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x463375
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462b1b
or dword [ebp - 0x18], 1
jmp 0x463343
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462b3d
or dword [ebp - 0x18], 2
jmp 0x463343
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c653c
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462b5d
or dword [ebp - 0x18], 0x10
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._drv
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462b7c
or dword [ebp - 0x18], 8
jmp 0x463343
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462b9b
or dword [ebp - 0x18], edi
jmp 0x463343
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c6528
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462bbb
mov byte [ebp + 0x26], 1
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462bda
mov byte [ebp + 0x5f], 1
jmp 0x463343
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462bfa
mov byte [ebp + 0x5f], 0x21
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462c19
mov byte [ebp + 0x65], 1
jmp 0x463343
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462c39
mov byte [ebp + 0x65], 0x21
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462c58
mov byte [ebp + 0x64], 1
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._gptmini
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462c77
mov byte [ebp + 0x64], 2
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpth
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462c96
mov byte [ebp + 0x64], 4
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462cb5
mov byte [ebp - 0x7d], 1
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462cd4
mov byte [ebp - 0x49], 1
jmp 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4c1ab4
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462cf4
mov byte [ebp - 0x75], 1
jmp 0x463343
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c64e0
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462d17
mov byte [ebp - 0xa2], 1
jmp 0x463343
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4c5c90
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462d3d
add dword [ebp - 0x88], 0x100
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._img
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462d5c
mov byte [ebp - 0x2a], 1
jmp 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462d7c
or byte [ebp - 0x26], 0x40
jmp 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462d9c
mov byte [ebp + 0x4b], 3
jmp 0x463343
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x462dbb
inc edi
mov byte [ebp + 0x4b], 3
inc edi
jmp 0x462dd3
push 6
push edi
push str._lock:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x462e3b
mov byte [ebp + 0x4b], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x462e0c
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x462e0c
push ecx
call fcn.00443c3d
add esp, 4
test al, al
jne 0x462e0c
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 4], edi
call fcn.00405676
jmp 0x462f6e
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405656
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405656
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
jmp 0x463343
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462e5b
mov byte [ebp + 0x4b], 1
jmp 0x463343
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x462d93
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.004460ea
add esp, 0xc
test al, al
je 0x462e9c
mov byte [ebp + 0x4b], 0xf0
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
jmp 0x463343
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x4c6498
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x462efe
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x462ecf
cmp ax, 0x3d
je 0x462ecf
call fcn.0040f4c7
test al, al
je 0x462efe
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0xb4], ebx
je 0x462eea
mov dword [ebp - 8], 0x4c6490
jmp 0x462e2c
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x462f64
push 4
push edi
push str._pbr
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x462f87
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x462f2e
cmp ax, 0x3d
je 0x462f2e
call fcn.0040f4c7
test al, al
je 0x462f87
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 8], ebx
push eax
je 0x462f53
mov dword [ebp - 0xb4], 0x4bd7d2
call fcn.00405676
pop ecx
jmp 0x462e2c
add dword [ebp + 0x78], 2
call fcn.0043dcd9
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405676
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x462e2c
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x462e2c
push 9
push edi
push str._alignend
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x46300e
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x462fb7
cmp ax, 0x3d
je 0x462fb7
call fcn.0040f4c7
test al, al
je 0x46300e
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x462fff
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.00443c3d
add esp, 4
test al, al
je 0x463327
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x30]
push eax
mov dword [ebp + 0x30], ecx
call fcn.0044908a
cmp dword [ebp - 0x70], ebx
pop ecx
pop ecx
jg 0x463327
jl 0x462fff
cmp dword [ebp - 0x74], ebx
ja 0x463327
mov dword [ebp - 0x74], 0xfffffffe
mov dword [ebp - 0x70], esi
jmp 0x463327
push 6
push edi
push str._align
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4630bc
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x463042
cmp ax, 0x3d
je 0x463042
call fcn.0040f4c7
test al, al
je 0x4630bc
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.00405676
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x463072
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x9c], esi
jmp 0x463343
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.00443c3d
add esp, 4
test al, al
je 0x463343
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x30]
push eax
mov dword [ebp + 0x30], ecx
call fcn.0044908a
cmp dword [ebp - 0x9c], ebx
pop ecx
pop ecx
jg 0x463343
jl 0x463061
cmp dword [ebp - 0xa0], ebx
ja 0x463343
jmp 0x463061
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4630e1
mov byte [ebp - 0x95], 1
jmp 0x463343
push edi
lea eax, [ebp + 0x78]
push eax
push str._clean
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463100
mov byte [ebp + 3], 1
jmp 0x463343
push 7
lea eax, [ebp + 0x78]
push eax
push str._clean_
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463120
mov byte [ebp + 3], 0
jmp 0x463343
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c0338
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x46333f
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x46333f
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46317a
or dword [ebp - 0x18], 0x20
mov byte [ebp - 0x47], 1
jmp 0x463343
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4631b3
add dword [ebp + 0x78], 0xc
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
test eax, eax
pop ecx
pop ecx
jl 0x464ba0
mov byte [ebp + 2], 1
jmp 0x463343
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x463252
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x1c], edi
call fcn.00408ddd
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00443c3d
add esp, 0xc
test al, al
je 0x46320d
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044908a
pop ecx
pop ecx
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x3a
jne 0x46322c
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044908a
pop ecx
pop ecx
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x3a
jne 0x463343
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044908a
jmp 0x463339
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.0043f11b
add esp, 0xc
test al, al
jne 0x46334f
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4632b0
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x30], 0x42
call fcn.004504ce
mov al, byte [ebp - 0x30]
add esp, 0xc
mov byte [ebp - 0x5c], al
jmp 0x463343
push 4
push dword [ebp + 0x78]
push 0x4c6434
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4632d9
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
jmp 0x463339
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4632fb
mov dword [ebp - 0x84], 8
jmp 0x463343
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46331e
mov dword [ebp - 0x84], 0x10
jmp 0x463343
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x46334f
lea eax, [ebp + 0x78]
push eax
call fcn.00405676
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
jmp 0x462e35
mov byte [ebp + 0xb], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x462a3f
cmp dword [ebp - 0x74], 0xfffffffe
jne 0x4633b6
cmp dword [ebp - 0x70], esi
jne 0x4633b6
mov eax, dword [ebp - 0xa0]
cmp eax, 0xfffffff7
jne 0x4633aa
cmp dword [ebp - 0x9c], esi
jne 0x4633aa
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
jmp 0x4633c7
push str.21:INDATA
lea ecx, [ebp - 0x5c]
call fcn.0044cf2d
push dword [ebp + 0x78]
lea ecx, [ebp - 0x5c]
call fcn.0044420d
push dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xb8]
call fcn.0042300e
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.0043dd41
jmp 0x467320
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0xa0], 0xfffffff7
jne 0x4633d7
cmp dword [ebp - 0x9c], esi
jne 0x4633d7
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0x9c], ebx
cmp dword [ebp - 0x74], 0xfffffff7
jne 0x4633f4
cmp dword [ebp - 0x70], esi
jne 0x4633f4
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x70], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4c6404
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463512
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463430
mov byte [ebp + 0x66], 1
jmp 0x463512
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46344f
mov byte [ebp + 0x66], 2
jmp 0x463512
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c63f8
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46346f
mov byte [ebp + 0x66], 3
jmp 0x463512
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463496
mov byte [ebp + 0x66], 4
mov dword [ebp - 0x84], 8
jmp 0x463512
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4634bd
mov byte [ebp + 0x66], 5
mov dword [ebp - 0x84], 0x10
jmp 0x463512
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4634da
mov byte [ebp + 0x66], 6
jmp 0x463512
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4634f7
mov byte [ebp + 0x66], 7
jmp 0x463512
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c63d4
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463512
mov byte [ebp + 0x66], 8
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x27], 0
call fcn.004460ea
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x463536
mov byte [ebp + 0x5e], 1
mov dword [ebp + 0x60], edi
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c63d0
call fcn.004460ea
add esp, 0xc
test al, al
je 0x463551
mov byte [ebp + 0x5e], 0x10
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46356e
mov byte [ebp + 0x27], 1
jmp 0x4635c3
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46358b
mov byte [ebp + 0x27], 0x20
jmp 0x4635c3
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4635a8
mov byte [ebp + 0x27], 0x10
jmp 0x4635c3
push 8
lea eax, [ebp + 0x78]
push eax
push str.hupdatef
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4635c6
mov byte [ebp + 0x27], 0x18
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00405676
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xcc]
call fcn.004442c5
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x463610
mov dword [ebp - 0xa8], 0x80
jmp 0x46362a
cmp ax, 0x2d
jne 0x463634
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x463634
mov dword [ebp - 0xa8], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.00405676
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, 0x4d88a8
push edi
mov dword [ebp - 0x1c0], 0xebd0a0a2
mov word [ebp - 0x1bc], 0xb9e5
mov word [ebp - 0x1ba], 0x4433
mov byte [ebp - 0x1b8], 0x87
mov byte [ebp - 0x1b7], 0xc0
mov byte [ebp - 0x1b6], 0x68
mov byte [ebp - 0x1b5], 0xb6
mov byte [ebp - 0x1b4], 0xb7
mov byte [ebp - 0x1b3], 0x26
mov byte [ebp - 0x1b2], 0x99
mov byte [ebp - 0x1b1], 0xc7
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x30], str.MS_Basic_Data
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x180], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x64], 0
jne 0x46371a
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x463749
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.00443c3d
add esp, 4
test al, al
jne 0x463749
mov ecx, edx
mov byte [ebp - 0x7e], 1
mov dword [ebp + 0x78], ecx
jmp 0x463749
push ebx
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00452591
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x174], eax
jne 0x463746
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
jmp 0x467320
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x463759
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x46], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x46376a
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
jmp 0x46377e
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044913a
pop ecx
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x1e], 1
jne 0x463795
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x1e], 0
cmp word [eax], 0x2d
jne 0x4637a6
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
jmp 0x4637ba
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044913a
pop ecx
mov dword [ebp - 0x180], eax
cmp byte [ebp + 0x64], 0
pop ecx
je 0x4637f1
push ebx
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00452591
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044908a
add esp, 0x14
mov dword [ebp - 0x188], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1c4], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x463848
cmp byte [ebp + 0x64], 0
je 0x463848
cmp cx, bx
je 0x463848
mov dword [ebp - 0x1c8], eax
push ebx
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x1c8]
push eax
call fcn.00419ea1
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
add esp, 0xc
mov dword [ebp - 0x184], 1
mov dword [ebp - 0x30], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x66], 1
mov byte [ebp - 0x25], 0
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x48], 0
je 0x463863
cmp byte [ebp + 0x66], 4
jge 0x463863
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0xcc]
push 5
push ebx
mov edi, ebx
push 0x4c6388
mov dword [ebp + 0x78], edi
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x463944
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edi, ecx
jne 0x4638e4
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp + 0x34]
add ecx, 2
push eax
mov dword [ebp + 0x34], ecx
call fcn.0044913a
mov edi, dword [ebp + 0x34]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x48], 1
jne 0x4638df
lea eax, [ebp - 0xe4]
push eax
inc edi
lea eax, [ebp + 0x34]
inc edi
push eax
mov dword [ebp + 0x34], edi
call fcn.0044913a
mov edi, dword [ebp + 0x34]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x48], 0x11
jne 0x4638df
inc edi
inc edi
mov ecx, edi
mov dword [ebp + 0x78], ecx
xor edx, edx
mov dx, word [ecx]
cmp dx, 0x5c
je 0x463914
cmp dx, 0x2f
je 0x463914
mov byte [ebp - 0x28], 1
jmp 0x463914
mov eax, edx
call fcn.0040f4c7
test al, al
jne 0x463919
cmp dx, 0x23
je 0x463919
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
test dx, dx
jne 0x4638fb
sub ecx, edi
sar ecx, 1
test ecx, ecx
jle 0x463935
push ecx
push edi
lea ecx, [ebp - 0xc0]
call fcn.004442c5
mov dword [ebp - 0x14], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x463984
push 2
push ebx
push 0x4c6384
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x46395e
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.00443d5b
test al, al
je 0x46397c
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044073a
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0x25]
push 0
push 0x200
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.004aa1b0
mov dword [ebp - 0x3c], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x38], edx
je 0x4639b5
cmp ax, 0x3a
jne 0x463a54
inc edi
inc edi
push 2
push edi
push 0x4c6380
mov dword [ebp + 0x78], edi
call fcn.0043f11b
push 2
push edi
push 0x4c637c
mov byte [ebp + 0x67], al
call fcn.0043f11b
mov byte [ebp + 0x1c], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x1c]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x1d], al
jne 0x463a01
cmp word [edi], 0x2b
jne 0x463a01
inc edi
inc edi
mov byte [ebp - 0x27], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x1c], 0
jne 0x463a25
mov ax, word [edi]
cmp ax, 0x40
je 0x463a1c
cmp ax, 0x2d
je 0x463a1c
cmp ax, 0x3d
jne 0x463a25
or dword [ebp - 0x18], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.00443d5b
test al, al
je 0x463a54
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
test eax, eax
pop ecx
pop ecx
jle 0x463a54
cmp dword [ebp + 0x60], 0
mov byte [ebp - 0x29], 1
jne 0x463a58
mov byte [ebp + 0x67], 1
jmp 0x463a5a
cmp dword [ebp + 0x60], 0
jg 0x463a76
cmp byte [ebp + 0x66], 0
jg 0x463a76
cmp dword [ebp - 8], 0
jne 0x463a76
cmp dword [ebp - 0xb4], 0
jne 0x463a76
xor ecx, ecx
mov dword [ebp + 0x40], ecx
jmp 0x463a7f
mov dword [ebp + 0x40], 1
xor ecx, ecx
cmp byte [ebp + 0x4b], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
je 0x463aa0
cmp dword [ebp + 0x40], ecx
jne 0x463aa0
cmp word [ebx], cx
jne 0x463aa0
mov eax, 0xfffc0000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc0]
lea edi, [ebp - 0x2cc]
mov word [ebp - 0x2cc], cx
cmp word [eax], cx
mov dword [ebp - 0xf8], edi
je 0x463ac6
mov edi, eax
mov dword [ebp - 0xf8], edi
push dword [ebp - 0x14]
lea eax, [ebp - 0x2cc]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp - 0x2a], 0
jg 0x463b19
mov eax, dword [ebp - 0xb0]
or eax, dword [ebp - 0xac]
jne 0x463b19
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x463b19
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x30]
add edi, 0x22
push eax
mov dword [ebp + 0x30], edi
call fcn.00447492
pop ecx
pop ecx
cmp byte [ebp + 0x27], 0
jne 0x463b2b
cmp byte [ebp + 0x5f], 0
jne 0x463b2b
cmp byte [ebp + 0x65], 0
je 0x463b41
cmp dword [ebp - 0x14], 0
jge 0x463b41
cmp dword [ebp - 0x24], 0
jge 0x463b41
push 0x4d88a8
jmp 0x464b9a
and dword [ebp + 0x6c], 0
and dword [ebp - 0x10], 0
cmp byte [ebp + 0x4b], 0
mov edi, 0x80070057
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x104], edi
mov byte [ebp + 0x68], 0
je 0x463c1a
mov ebx, dword [ebp - 0x24]
test ebx, ebx
jge 0x463b82
cmp dword [ebp - 0x68], esi
jl 0x463b82
jg 0x463b78
cmp dword [ebp - 0x6c], esi
jbe 0x463b82
cmp dword [ebp + 4], 0
je 0x463c1a
mov eax, dword [ebp + 4]
test eax, eax
je 0x463bb8
cmp word [eax], 0x2a
jne 0x463bb8
xor eax, eax
mov al, byte [ebp + 0x4b]
and eax, 2
shr eax, 1
push eax
push ebx
call fcn.00452767
pop ecx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x10], eax
xor eax, eax
or byte [0x4d8450], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
test ebx, ebx
jge 0x463bcc
cmp dword [ebp - 0x68], esi
jl 0x463bcc
jg 0x463bc8
cmp dword [ebp - 0x6c], esi
jbe 0x463bcc
test eax, eax
je 0x463c1a
push eax
xor eax, eax
mov al, byte [ebp + 0x4b]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push ebx
call fcn.00405214
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x68]
add esp, 0x1c
cmp eax, esi
je 0x463c13
or byte [ebp + 0x68], 0x10
or byte [0x4d8450], 0x10
jmp 0x463c1a
mov byte [0x4d8450], 0
cmp byte [ebp + 2], 0
jbe 0x463e73
cmp byte [ebp + 0x64], 0
jne 0x463e73
xor esi, esi
cmp dword [ebp - 0x14], esi
jge 0x463c44
mov eax, dword [ebp - 0xc0]
cmp word [eax], si
je 0x463e51
mov eax, dword [ebp - 0x60]
cmp eax, esi
jle 0x463c54
cmp eax, dword [ebp + 0x60]
je 0x463e51
cmp dword [ebp + 0x60], 4
jg 0x463e51
cmp byte [ebp + 0x1e], 2
jl 0x463e51
push esi
push 0x20000000
push 3
push esi
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.0040569f
cmp dword [ebp + 0x6c], esi
je 0x463d9d
push 0x800
push 1
push esi
push dword [ebp + 0x6c]
call fcn.00448ed5
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x44], eax
call fcn.00441575
add esp, 0x18
cmp eax, esi
mov ebx, eax
jge 0x463cbb
mov ebx, esi
lea eax, [ebx + ebx*2]
push eax
lea ecx, [ebp + 0x34]
mov dword [ebp + 4], ebx
call fcn.0044404a
mov eax, dword [ebp + 0x34]
lea edi, [eax + ebx]
lea eax, [ebx - 1]
not eax
push 0
and edi, eax
lea eax, [ebp - 0x50]
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 0x463d1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x463cfc
inc esi
lea ecx, [ebp + 0x34]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
push 0x4d88a8
jmp 0x46731a
push 0x200
push esi
push edi
call fcn.00413fe3
dec dword [ebp - 0x60]
dec dword [ebp + 0x60]
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + edi + 0x1be]
mov dword [ebp + 0x30], eax
push ecx
lea eax, [eax + esi + 0x1be]
push eax
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
call fcn.00413fe3
mov eax, dword [ebp + 0x30]
lea eax, [eax + edi + 0x1be]
push 0x10
push eax
lea eax, [ebx + esi + 0x1be]
push eax
call fcn.00413fe3
push 0
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x34
test eax, eax
je 0x463dc0
lea ecx, [ebp + 0x34]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
push 0x4d88a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x467320
push dword [ebp + 4]
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x10], ebx
call fcn.00444473
add esp, 0xc
test eax, eax
jne 0x463e05
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 4]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x463dfc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x463df9
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
push dword [ebp + 0x6c]
call fcn.00441b80
pop ecx
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x26]
lea ecx, [ebp + 0x34]
or byte [ebp + 0x5f], al
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x5f]
or al, byte [ebp + 0x26]
je 0x463e29
mov dword [ebp + 0x40], ebx
call fcn.0043dd41
jmp 0x46639f
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
push 0x4d88a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0x10]
jmp 0x467320
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
push 0x4d88a8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, edi
jmp 0x467320
cmp byte [ebp + 0x27], 0x10
jne 0x463e86
test byte [ebp + 0x65], 0x20
jne 0x46639f
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x4b], 0
mov edi, dword [ebp - 0xcc]
mov ecx, dword [ebp + 0x60]
je 0x463ee5
cmp dword [ebp + 0x40], ebx
jne 0x463ee5
cmp byte [ebp + 0x26], 0
jne 0x46639f
cmp byte [ebp + 0x5f], 0
jne 0x46639f
cmp byte [ebp + 0x65], 0
jne 0x46639f
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
test eax, eax
je 0x463eda
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 0x104]
jmp 0x467320
mov eax, dword [ebp - 8]
cmp eax, ebx
jne 0x466511
cmp dword [ebp - 0xb4], ebx
jne 0x466851
mov dl, byte [ebp + 0x66]
cmp dl, 6
mov dword [ebp - 0x10], 0x80070057
je 0x466c73
cmp dl, 1
je 0x466d78
cmp dl, 2
jne 0x463f27
cmp byte [ebp - 0x2a], 0
je 0x466dbb
cmp dl, 8
jne 0x463f36
cmp byte [ebp - 0x2a], 0
je 0x466dfe
xor eax, eax
cmp dl, 3
mov dword [ebp + 0x58], eax
je 0x466e93
cmp dl, 4
je 0x46758b
cmp dl, 5
je 0x46758b
cmp dl, 7
je 0x466f6c
cmp byte [ebp + 0x1c], al
je 0x463f7c
push 5
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x50], ebx
pop ecx
cmp byte [ebp + 0x67], 0
mov dword [ebp - 0x10], ebx
je 0x463f88
push 5
pop ecx
cmp byte [ebp + 0xb], 0
je 0x463fa3
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x50], ebx
cmp byte [ebp - 0x25], 0
je 0x463fb2
cmp dword [ebp - 0x24], ebx
jl 0x464b78
cmp byte [ebp - 0x1d], 0
je 0x463fc0
cmp ecx, ebx
jl 0x464b78
dec ecx
cmp byte [ebp + 0x64], 0
mov dword [ebp + 0x60], ecx
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x108], esi
mov byte [ebp + 0x1d], 0
mov byte [ebp - 0xa1], 0
mov dword [ebp + 0x30], ebx
mov byte [ebp + 2], 0
mov byte [ebp - 0x45], 0
mov dword [ebp - 0x7c], ebx
jne 0x464014
cmp dword [ebp - 0x58], ebx
jne 0x464014
mov eax, dword [ebp + 0x4c]
or eax, dword [ebp + 0x50]
jne 0x464014
mov eax, dword [ebp + 0x28]
or eax, dword [ebp + 0x2c]
jne 0x464014
mov byte [ebp + 0xb], 1
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp byte [ebp - 0xa2], 0
je 0x464046
cmp dword [ebp + 0x50], ebx
jl 0x464046
jg 0x464030
cmp dword [ebp + 0x4c], ebx
jb 0x464046
cmp dword [ebp + 0x2c], ebx
jl 0x464046
jg 0x46403d
cmp dword [ebp + 0x28], 1
jb 0x464046
mov dword [ebp + 4], 1
jmp 0x464049
mov dword [ebp + 4], ebx
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.0040569f
cmp dword [ebp + 0x6c], ebx
je 0x467007
mov edi, 0x200
push edi
push dword [ebp + 0x6c]
call fcn.00441575
pop ecx
cmp eax, edi
pop ecx
mov edi, eax
jge 0x46408b
mov edi, 0x200
cmp dword [ebp + 4], ebx
mov dword [ebp + 0x20], edi
je 0x46410b
cmp dword [ebp + 0x50], ebx
jl 0x4640d1
jg 0x46409f
cmp dword [ebp + 0x4c], ebx
jb 0x4640d1
push ebx
push 0x200
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call fcn.004aa1b0
test byte [ebp + 0x68], 0x11
jne 0x4640d1
push ebx
push ebx
push ebx
lea ecx, [edi + edi*4]
shl ecx, 3
push ecx
push edx
push eax
push dword [ebp - 0x24]
call fcn.00405214
add esp, 0x1c
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x67], 0
jne 0x46410b
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xac]
adc ecx, dword [ebp + 0x50]
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043ce67
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.00441bc6
mov dword [ebp - 0x104], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.00448ed5
add esp, 0x10
cmp byte [ebp + 0x27], 0
mov dword [ebp - 0x44], eax
je 0x46412f
mov dword [ebp + 0x40], ebx
jmp 0x466397
cmp dword [ebp - 0x58], 0xff
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x148], ebx
jg 0x467033
cmp byte [ebp + 0x67], 0
jne 0x464193
cmp dword [ebp + 0x60], ebx
jge 0x464193
cmp dword [ebp + 0x50], ebx
jg 0x467033
jl 0x464167
cmp dword [ebp + 0x4c], ebx
jae 0x467033
cmp dword [ebp + 0x2c], ebx
jg 0x467033
jl 0x46417b
cmp dword [ebp + 0x28], ebx
jae 0x467033
cmp dword [ebp - 0x58], ebx
jge 0x467033
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0x1a0], esi
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp + 0x34], eax
jne 0x4641d8
cmp byte [ebp + 0x1c], 0
jne 0x4641d8
cmp eax, 4
jl 0x46480c
cmp byte [ebp + 0x64], 0
jne 0x46480c
cmp byte [ebp + 0x5e], 0
jne 0x46480c
cmp byte [ebp + 0x67], 0
je 0x4641f9
mov dword [ebp + 0x60], 4
cmp dword [ebp - 0x58], 5
je 0x464b78
cmp dword [ebp - 0x58], 0xf
je 0x464b78
push 0x100000
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x40], ebx
call fcn.0044404a
lea eax, [ebp + 0x40]
push eax
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.00441953
mov edx, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x464261
cmp edx, ecx
jge 0x464246
cmp ecx, 4
jge 0x4642a7
cmp byte [ebp + 0x67], 0
jne 0x464261
cmp byte [ebp + 0x1c], 0
jne 0x464261
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3f], 0
jg 0x464293
dec eax
jmp 0x46429a
cmp byte [ebp + 0x1c], 0
mov byte [ebp + 0x3f], 1
jne 0x4642af
cmp byte [ebp + 0x67], 0
je 0x4642b4
cmp dword [ebp - 0x58], ebx
jl 0x4642a7
cmp word [ebp - 0xa8], bx
jle 0x46428b
mov dword [ebp - 0xa8], 0x80
jmp 0x4642b4
mov dword [ebp - 0xa8], ebx
jmp 0x4642b4
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x4642a7
cmp eax, edx
jl 0x4642b4
cmp ecx, 4
jle 0x4642b4
lea ecx, [ebp - 0x40]
jmp 0x464b73
cmp edx, 4
jle 0x4642a7
cmp edx, 4
jle 0x4642c4
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x10], eax
jmp 0x4642c7
mov dword [ebp + 0x10], ebx
cmp byte [ebp + 0x3f], 0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x34], esi
jne 0x4642e7
cmp ecx, 4
jl 0x4642e4
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0x10], eax
jmp 0x4642e7
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x44], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x4642fb
cmp cl, 0xf
jne 0x4642fe
mov dword [ebp + 0x44], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x4642ef
cmp byte [ebp + 0x3f], 0
je 0x464314
cmp dword [ebp + 0x44], ebx
jl 0x4642a7
mov eax, dword [ebp + 0x44]
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 - 0x8c], esi
push dword [esi + 8]
call fcn.004aa100
push 0
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0xdc], eax
push dword [esi + 0x10]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], edx
call fcn.004aa100
mov ebx, eax
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x1c], 0
mov dword [ebp - 0x1e8], edx
lea esi, [eax + edi + 0x30]
je 0x464467
mov eax, dword [ebp + 0x40]
xor esi, esi
cmp eax, 8
jne 0x464397
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xd8]
jmp 0x46440e
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 0x4643ed
cmp cl, 0xf
je 0x4643ed
inc esi
add eax, 0x90
cmp esi, 4
jl 0x4643aa
lea ecx, [ebp - 0x40]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
test eax, eax
jmp 0x464b97
push 0
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.004aa100
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
test esi, esi
jl 0x4643c1
and dword [ebp - 0x244], 0
xor eax, eax
add ecx, dword [ebp - 0xb0]
lea edi, [ebp - 0x240]
adc edx, dword [ebp - 0xac]
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.00452467
and dword [ebp - 0x10], 0
add esp, 0x14
cmp byte [ebp + 0x65], 0
jne 0x46445b
cmp byte [ebp + 0x5f], 0
jne 0x46445b
cmp byte [ebp + 0x26], 0
je 0x467057
and dword [ebp + 0x40], 0
lea ecx, [ebp - 0x40]
jmp 0x466392
cmp dword [ebp + 0x40], 4
jg 0x464475
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x38], eax
jmp 0x4644a0
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x464486
cmp cl, 0xf
jne 0x464489
mov dword [ebp + 0x38], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x46447a
cmp byte [ebp + 0x3f], 0
jne 0x4644a0
mov eax, dword [ebp + 0x10]
add dword [ebp + 0x38], eax
cmp dword [ebp + 0x38], 0
jge 0x4644b0
cmp byte [ebp + 0x67], 0
je 0x4643c1
cmp byte [ebp + 0x3f], 0
je 0x4644bc
and dword [ebp + 0x34], 0
jmp 0x4644e6
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x4644ce
test edx, edx
jne 0x4644db
cmp cl, 5
je 0x4644db
cmp cl, 0xf
je 0x4644db
mov dword [ebp + 0x34], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x4644c4
cmp byte [ebp + 0x3f], 0
jne 0x4644f6
cmp dword [ebp + 0x34], 0
jl 0x4643c1
cmp byte [ebp + 0x67], 0
je 0x46473f
mov eax, dword [ebp + 0x10]
test eax, eax
jg 0x46450a
mov eax, dword [ebp + 0x44]
lea eax, [eax + eax*8]
shl eax, 4
lea eax, [eax + edi + 0x30]
mov ecx, dword [eax + 8]
push 0
mov dword [ebp + 0x18], eax
mov eax, dword [eax + 0xc]
push 0x200
push eax
push ecx
mov dword [ebp - 0x230], eax
call fcn.004aa100
cmp dword [ebp + 0x40], 4
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
jle 0x464638
cmp dword [ebp + 0x38], 0
jge 0x464638
cmp byte [esi + 0x20], 0
je 0x4645ec
mov eax, dword [ebp + 0x40]
cmp eax, 8
jle 0x46456c
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x46456f
mov eax, dword [ebp + 0x44]
push 0
lea eax, [eax + eax*8]
push 0x200
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.004aa100
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x144], 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 - 0x140], edx
call fcn.004aa100
mov ecx, eax
sub ecx, dword [ebp - 0x164]
mov dword [ebp - 0x1a0], ecx
mov ecx, edx
sbb ecx, dword [ebp - 0x160]
sub ebx, eax
mov dword [ebp - 0x19c], ecx
mov ecx, dword [ebp - 0x1e8]
sbb ecx, edx
add ebx, dword [ebp - 0x164]
adc ecx, dword [ebp - 0x160]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ecx
jmp 0x46467c
cmp dword [ebp + 0x10], 4
jne 0x46705f
mov eax, dword [ebp + 0x44]
test eax, eax
jl 0x46705f
mov ecx, dword [ebp - 0x8c]
cmp byte [ecx + 0x20], 0
je 0x46705f
mov edx, dword [ebp - 0xd8]
or dword [ebp + 0x10], 0xffffffff
mov ecx, dword [ebp - 0x1e8]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
jmp 0x464674
cmp dword [ebp + 0x10], 0
jle 0x46465e
mov eax, dword [ebp + 0x18]
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.004aa100
mov ecx, dword [ebp - 0x1e8]
sub ebx, eax
sbb ecx, edx
add ebx, dword [ebp - 0x164]
adc ecx, dword [ebp - 0x160]
and dword [ebp - 0x6c], 0
and dword [ebp - 0x68], 0
test ecx, ecx
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], edx
jl 0x4643c1
jg 0x46469a
test ebx, ebx
jbe 0x4643c1
cmp byte [ebp - 0x46], 0
je 0x4646a6
add dword [ebp + 0x4c], eax
adc dword [ebp + 0x50], edx
mov edi, eax
add edi, 1
mov esi, edx
adc esi, 0
cmp dword [ebp + 0x50], esi
jg 0x4646c2
jl 0x4646bc
cmp dword [ebp + 0x4c], edi
ja 0x4646c2
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], esi
sub ebx, dword [ebp + 0x4c]
sbb ecx, dword [ebp + 0x50]
add ebx, eax
adc ecx, edx
cmp dword [ebp + 0x2c], ecx
jl 0x4646de
jg 0x4646d8
cmp dword [ebp + 0x28], ebx
jbe 0x4646de
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ecx
xor eax, eax
cmp dword [ebp + 0x2c], eax
jl 0x4643c1
jg 0x4646f4
cmp dword [ebp + 0x28], eax
jb 0x4643c1
cmp dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x40]
jle 0x464712
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x464708
inc eax
jmp 0x46471a
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x46471a
and eax, 0xfffffffc
cmp eax, 3
jg 0x46471d
inc eax
jmp 0x464725
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0xd0]
jmp 0x4647f9
mov eax, dword [ebp + 0x38]
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.004aa100
push 0
push edi
push dword [esi + 0x14]
mov ebx, eax
push dword [esi + 0x10]
mov eax, edx
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xd0], eax
call fcn.004aa100
cmp byte [ebp - 0x46], 0
je 0x464795
add dword [ebp + 0x4c], ebx
mov ecx, dword [ebp - 0x1d8]
adc dword [ebp + 0x50], ecx
xor esi, esi
cmp dword [ebp + 0x50], esi
jl 0x4647bb
jg 0x4647a3
cmp dword [ebp + 0x4c], esi
jbe 0x4647bb
mov ecx, dword [ebp - 0x1d8]
cmp dword [ebp + 0x50], ecx
jg 0x4647bb
jl 0x4647b5
cmp dword [ebp + 0x4c], ebx
ja 0x4647bb
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x50], ecx
cmp dword [ebp + 0x2c], esi
jl 0x4647ed
jg 0x4647c7
cmp dword [ebp + 0x28], esi
jbe 0x4647ed
cmp dword [ebp + 0x2c], edx
jl 0x4647d9
jg 0x4647d3
cmp dword [ebp + 0x28], eax
jbe 0x4647d9
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
cmp dword [ebp + 0x2c], esi
jl 0x467067
jg 0x4647ed
cmp dword [ebp + 0x28], esi
jb 0x467067
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x14c], ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x148], eax
call fcn.0043dd41
mov edi, dword [ebp + 0x20]
xor ebx, ebx
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x148]
setge byte [ebp - 0x51]
add eax, dword [ebp - 0xb0]
push ebx
adc ecx, dword [ebp - 0xac]
push 0x200
push ecx
push eax
call fcn.004aa1b0
cmp dword [ebp + 4], ebx
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
je 0x464884
cmp byte [ebp + 0x67], 0
je 0x464884
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xac]
adc ecx, dword [ebp + 0x50]
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043ce67
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.00441bc6
mov dword [ebp - 0x104], ebx
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
cmp eax, dword [ebp - 0x128]
jne 0x4672bd
cmp edx, dword [ebp - 0x124]
jne 0x4672bd
lea eax, [edi + edi*2]
push eax
lea ecx, [ebp - 4]
call fcn.0044404a
mov eax, dword [ebp - 4]
lea esi, [eax + edi]
lea eax, [edi - 1]
not eax
and esi, eax
push edi
mov dword [ebp + 0x38], esi
add esi, edi
push ebx
push esi
mov dword [ebp + 0x18], esi
call fcn.004aa0a0
add esp, 0xc
push ebx
lea eax, [ebp - 0x50]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4672b5
push edi
push esi
push dword [ebp + 0x38]
call fcn.00413fe3
add esp, 0xc
cmp byte [ebp + 0x5e], 0
je 0x4649e9
cmp byte [ebp + 0x64], 0
jne 0x4649e9
push esi
call fcn.00441b98
cmp byte [ebp + 3], 0
pop ecx
jg 0x46493f
jge 0x46493b
cmp dword [ebp - 0x38], ebx
lea eax, [edi + edi + 0x4000]
jg 0x46493f
jl 0x46493b
cmp dword [ebp - 0x3c], eax
ja 0x46493f
xor al, al
jmp 0x464941
mov al, 1
cmp byte [ebp + 0x5e], 1
jne 0x46497c
test al, al
je 0x46496a
cmp edi, 0x200
jbe 0x46496a
lea eax, [edi - 0x200]
push eax
lea eax, [esi + 0x200]
push ebx
push eax
call fcn.004aa0a0
add esp, 0xc
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.004aa0a0
add esp, 0xc
push edi
push esi
push dword [ebp + 0x38]
mov word [esi + 0x1fe], 0xaa55
call fcn.0043ddc8
add esp, 0xc
test eax, eax
je 0x4649c9
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
push ebx
lea eax, [ebp - 0x50]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x50], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x5f]
or al, byte [ebp + 0x26]
je 0x467093
cmp dword [ebp - 0x14], ebx
jl 0x467093
mov dword [ebp + 0x40], ebx
jmp 0x46638f
cmp byte [ebp + 0x66], 2
je 0x464a05
cmp byte [ebp + 0x1e], 0
jne 0x464a05
cmp byte [ebp - 0x29], 0
je 0x464a14
cmp dword [ebp + 0x60], 1
jle 0x464b70
cmp byte [ebp - 0x29], 0
je 0x464a14
cmp dword [ebp + 0x60], ebx
jl 0x464b70
push 0x100000
lea ecx, [ebp + 0x14]
call fcn.0044404a
cmp dword [ebp - 0x24], ebx
mov dword [ebp + 4], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x150], ebx
jl 0x464a55
push dword [ebp + 0x6c]
mov esi, dword [ebp + 0x14]
call fcn.004416ff
pop ecx
push ebx
push edi
push edx
push eax
call fcn.004aa100
mov esi, dword [ebp - 0xe0]
jmp 0x464abf
mov esi, dword [ebp - 0xe0]
cmp esi, ebx
jl 0x464a7b
jg 0x464a69
cmp dword [ebp - 0xe4], ebx
jb 0x464a7b
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], esi
lea eax, [ebp - 0x268]
push eax
push ebx
push dword [ebp - 0xf8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x464b05
test byte [ebp - 0x268], 0x10
jne 0x464b05
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 - 0xb0]
sbb edx, dword [ebp - 0xac]
cmp esi, ebx
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
jl 0x464b05
jg 0x464ae5
cmp dword [ebp - 0xe4], ebx
jbe 0x464b05
cmp edx, esi
ja 0x464b05
jb 0x464af3
cmp eax, dword [ebp - 0xe4]
jae 0x464b05
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], esi
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x6c]
call fcn.00441953
mov esi, eax
mov eax, dword [ebp - 0xc0]
mov cx, word [eax]
add esp, 0xc
cmp cx, bx
jne 0x464b2b
cmp esi, ebx
je 0x464b68
cmp esi, ebx
je 0x464b33
mov eax, dword [esi]
jmp 0x464b35
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x57]
cmp byte [ebp + 0x57], 0
je 0x464b4c
cmp byte [ebp - 0x7d], 0
mov byte [ebp + 0x1f], 1
je 0x464b50
mov byte [ebp + 0x1f], 0
cmp byte [ebp - 0x75], 0
jne 0x464bb0
cmp byte [ebp + 0x5e], 0
jne 0x464bb0
cmp byte [ebp + 0x1f], 0
je 0x464baa
cmp byte [ebp + 0x64], 0
jne 0x464bb0
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
je 0x464ba0
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x467320
cmp byte [ebp + 0x64], 0
jne 0x464b68
cmp cx, bx
mov eax, dword [ebp - 0x114]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp + 0x10], eax
jne 0x464c7d
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 - 0x50]
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 - 0x110], ebx
jg 0x464c2d
jl 0x464c17
cmp dword [ebp - 0x114], ebx
ja 0x464c2d
mov eax, dword [ebp - 0x220]
mov dword [ebp + 0x44], eax
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
cmp dword [ebp - 0x12c], ebx
jg 0x464c55
jl 0x464c3f
cmp dword [ebp - 0x130], ebx
ja 0x464c55
mov eax, dword [ebp - 0x21c]
mov dword [ebp + 0x40], eax
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x118], ebx
jg 0x464c7d
jl 0x464c67
cmp dword [ebp - 0x11c], ebx
ja 0x464c7d
mov eax, dword [ebp - 0x218]
mov dword [ebp + 0x10], eax
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x110], ebx
jg 0x464ca3
jl 0x464c8f
cmp dword [ebp - 0x114], ebx
ja 0x464ca3
mov eax, 0xff
mov dword [ebp + 0x44], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], ebx
cmp dword [ebp - 0x12c], ebx
jg 0x464cc7
jl 0x464cb5
cmp dword [ebp - 0x130], ebx
ja 0x464cc7
push 0x3f
pop eax
mov dword [ebp + 0x40], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], ebx
cmp dword [ebp - 0x118], ebx
jg 0x464cfa
jl 0x464cd9
cmp dword [ebp - 0x11c], ebx
ja 0x464cfa
mov eax, dword [ebp + 0x20]
cmp eax, ebx
mov dword [ebp + 0x10], eax
ja 0x464cea
mov dword [ebp + 0x10], 0x200
mov eax, dword [ebp + 0x10]
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
mov eax, dword [ebp + 0x10]
cdq
mov edi, 0x200
mov ecx, edi
idiv ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 0x20]
lea ebx, [ecx + eax]
add eax, ebx
mov dword [ebp - 0xc], eax
add eax, 0x10000
cmp byte [ebp + 0x1f], 0
mov dword [ebp - 0x170], eax
jne 0x465600
cmp byte [ebp + 0x64], 0
jne 0x465600
cmp byte [ebp + 0xb], 0
mov byte [ebp + 0x57], 0
jne 0x4651cb
mov esi, dword [ebp + 0x50]
xor eax, eax
cmp esi, eax
jg 0x464d6c
jl 0x464d58
cmp dword [ebp + 0x4c], eax
jae 0x464d6c
cmp dword [ebp + 0x2c], eax
jl 0x4651cb
jg 0x464d6c
cmp dword [ebp + 0x28], eax
jb 0x4651cb
mov ebx, dword [ebp + 0x60]
cmp ebx, eax
jl 0x4651cb
push 0x100000
lea ecx, [ebp - 0x34]
call fcn.00402d06
mov eax, dword [ebp + 0x10]
imul eax, dword [ebp + 0x40]
cdq
idiv edi
mov edi, eax
imul eax, dword [ebp + 0x44]
cmp dword [ebp + 0x10], 0
cdq
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], edx
jle 0x4670c6
mov eax, dword [ebp - 0xc0]
cmp word [eax], 0
jne 0x464de9
and dword [ebp + 4], 0
lea eax, [ebp + 4]
push eax
push dword [ebp - 0x34]
push dword [ebp + 0x6c]
call fcn.00441953
add esp, 0xc
test eax, eax
je 0x4670de
cmp ebx, 4
jl 0x464de9
cmp byte [ebp + 0x67], 0
jne 0x464de9
cmp ebx, dword [ebp + 4]
jge 0x4670c6
xor edx, edx
xor eax, eax
cmp esi, edx
jl 0x464e9e
jg 0x464e00
cmp dword [ebp + 0x4c], edx
jbe 0x464e9e
mov ecx, dword [ebp - 0xa0]
and ecx, dword [ebp - 0x9c]
cmp ecx, 0xffffffff
jne 0x464e3f
cmp esi, dword [ebp - 0x168]
jl 0x464e3a
jg 0x464e26
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp - 0x16c]
jb 0x464e3a
cmp byte [ebp - 0x51], 0
jne 0x464e3a
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
jmp 0x464e8a
mov eax, edi
cdq
jmp 0x464e88
cmp byte [ebp - 0x47], 0
jne 0x464e9e
mov eax, dword [ebp + 0x10]
cdq
mov ecx, eax
add ecx, dword [ebp - 0xa0]
mov edi, edx
adc edi, dword [ebp - 0x9c]
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.004aa100
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.004aa1b0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
push edx
push eax
push esi
push dword [ebp + 0x4c]
call fcn.00441adc
add esp, 0x10
add dword [ebp + 0x4c], eax
adc esi, edx
mov dword [ebp + 0x50], esi
xor ecx, ecx
cmp dword [ebp + 0x2c], ecx
jl 0x464eca
jg 0x464eac
cmp dword [ebp + 0x28], ecx
jbe 0x464eca
cmp byte [ebp - 0x7e], 0
jne 0x464eca
sub dword [ebp + 0x28], eax
sbb dword [ebp + 0x2c], edx
cmp dword [ebp + 0x2c], ecx
jg 0x464eca
jl 0x464ec4
cmp dword [ebp + 0x28], ecx
jae 0x464eca
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], ecx
cmp esi, ecx
jl 0x464edc
jg 0x464ed5
cmp dword [ebp + 0x4c], ecx
jbe 0x464edc
mov edi, dword [ebp + 0x4c]
mov ebx, esi
jmp 0x464ee0
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x2c], 0
jl 0x464f7f
jg 0x464ef6
cmp dword [ebp + 0x28], 0
jbe 0x464f7f
mov eax, dword [ebp - 0x74]
and eax, dword [ebp - 0x70]
cmp eax, 0xffffffff
jne 0x464f1c
push dword [ebp - 0x168]
add edi, dword [ebp + 0x28]
push dword [ebp - 0x16c]
adc ebx, dword [ebp + 0x2c]
push ebx
push edi
call fcn.004ac450
jmp 0x464f79
cmp byte [ebp - 0x47], 0
jne 0x464f7f
mov eax, dword [ebp + 0x10]
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.004aa100
push dword [ebp - 0x18c]
push esi
push edx
push eax
call fcn.004aa1b0
push 0
push 0x200
push edx
push eax
call fcn.004aa100
add edi, dword [ebp + 0x28]
push edx
adc ebx, dword [ebp + 0x2c]
push eax
push ebx
push edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
call fcn.004ac450
mov esi, dword [ebp + 0x50]
sub dword [ebp + 0x28], eax
sbb dword [ebp + 0x2c], edx
cmp dword [ebp - 0x68], 0
mov byte [ebp + 0x57], 0
mov byte [ebp + 0x3f], 0
mov byte [ebp + 0x1f], 0
jl 0x4650ac
jg 0x464fa1
cmp dword [ebp - 0x6c], 0
jbe 0x4650ac
mov ecx, dword [ebp + 0x28]
sub ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp + 0x2c]
sbb edi, dword [ebp - 0xd0]
add ecx, dword [ebp + 0x4c]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.004aa100
and dword [ebp - 0x1b0], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x44]
lea edi, [ebp - 0x1ac]
push dword [ebp + 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x1a0]
lea eax, [ebp + 0x1f]
push eax
lea eax, [ebp + 0x3f]
push eax
lea eax, [ebp + 0x57]
push eax
push dword [ebp - 0x19c]
mov dword [ebp - 0x6c], ebx
push edi
mov dword [ebp - 0x68], edx
call fcn.00441b06
mov al, byte [ebp + 0x3f]
add esp, 0x20
push 1
push dword [ebp + 0x44]
mov byte [ebp - 0x1af], al
mov al, byte [ebp + 0x1f]
push dword [ebp + 0x40]
mov byte [ebp - 0x1ae], al
mov al, byte [ebp + 0x57]
mov byte [ebp - 0x1ad], al
lea eax, [ebp + 0x1f]
push eax
lea eax, [ebp + 0x3f]
push eax
lea eax, [ebp + 0x57]
push eax
push 0
push 2
push dword [ebp - 0x19c]
mov byte [ebp - 0x1b0], 0
push edi
call fcn.004aa1b0
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.00441b06
mov al, byte [ebp + 0x3f]
mov byte [ebp - 0x1ab], al
mov al, byte [ebp + 0x1f]
mov byte [ebp - 0x1aa], al
mov al, byte [ebp + 0x57]
push 1
mov byte [ebp - 0x1a9], al
lea eax, [ebp - 0x1b0]
push eax
push dword [ebp - 0x140]
mov byte [ebp - 0x1ac], 5
push dword [ebp - 0x144]
mov dword [ebp - 0x1a8], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x1a4], ebx
call fcn.00452467
add esp, 0x34
mov eax, dword [ebp - 0x8c]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
call fcn.004aa100
test esi, esi
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], edx
jl 0x4650fe
jg 0x4650e3
xor eax, eax
cmp dword [ebp + 0x4c], eax
jb 0x465100
push ebx
push edi
push esi
push dword [ebp + 0x4c]
call fcn.004aa100
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], edx
xor eax, eax
jmp 0x46510c
xor eax, eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
cmp dword [ebp + 0x2c], eax
jl 0x46512d
jg 0x465118
cmp dword [ebp + 0x28], eax
jb 0x46512d
push ebx
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.004aa100
mov dword [ebp - 0x108], edx
jmp 0x465133
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x10c], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xec]
setge al
push eax
push dword [ebp + 0x44]
lea eax, [ebp + 0x1d]
push dword [ebp + 0x40]
push eax
lea eax, [ebp - 0xa1]
push eax
lea eax, [ebp + 0x30]
push eax
push ebx
push edi
call fcn.00441b06
add esp, 0x20
test esi, esi
jl 0x465192
jg 0x46517a
cmp dword [ebp + 0x4c], 0
jbe 0x465192
sub edi, dword [ebp - 0x1f4]
sbb ebx, dword [ebp - 0x1f0]
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], ebx
mov al, byte [ebp - 0x51]
mov byte [ebp + 0x57], al
movsx eax, al
push eax
push dword [ebp + 0x44]
lea eax, [ebp + 2]
push dword [ebp + 0x40]
push eax
lea eax, [ebp - 0x45]
push eax
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x10c]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.00441b06
add esp, 0x20
lea ecx, [ebp - 0x34]
call fcn.0043dd41
mov ebx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x18]
shl ebx, 4
cmp byte [ebp + 0x66], 2
lea edi, [ebx + esi]
je 0x467103
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x38]
call fcn.00413fe3
add esp, 0xc
cmp dword [ebp - 0x68], 0
jl 0x46522d
jg 0x4651fe
cmp dword [ebp - 0x6c], 0
jb 0x46522d
cmp dword [ebp + 0x34], 0
jle 0x465216
push ebx
push 0
add esi, 0x1be
push esi
call fcn.004aa0a0
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.004aa0a0
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [edi + 0x1c2]
jne 0x46524f
cmp byte [ebp + 0x1e], 2
jge 0x46524f
cmp al, 5
je 0x4670ce
cmp al, 0xf
je 0x4670ce
cmp byte [ebp + 0x67], 0
mov esi, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x4652c5
test al, al
je 0x4652c5
xor ebx, ebx
cmp dword [ebp - 0x58], ebx
je 0x4652c7
cmp byte [ebp + 0x1e], 2
jge 0x4652c7
cmp byte [ebp - 0x51], bl
jne 0x4652c7
cmp dword [ebp + 0x50], ebx
jl 0x46529d
jg 0x465283
cmp dword [ebp + 0x4c], ebx
jb 0x46529d
xor eax, eax
cmp dword [ebp - 0xec], esi
jne 0x464b68
cmp dword [ebp - 0xe8], eax
jne 0x464b68
cmp dword [ebp + 0x2c], ebx
jl 0x4652c7
jg 0x4652a9
cmp dword [ebp + 0x28], ebx
jb 0x4652c7
xor eax, eax
cmp dword [ebp - 0x10c], ecx
jne 0x4652bb
cmp dword [ebp - 0x108], eax
je 0x4652c7
cmp ecx, ebx
jne 0x464b68
jmp 0x4652c7
xor ebx, ebx
cmp byte [ebp + 0xb], 0
je 0x4652e9
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], ebx
mov eax, dword [ebp - 0x58]
cmp eax, ebx
jl 0x4652f6
mov byte [edi + 0x1c2], al
mov eax, dword [ebp - 0xa8]
cmp ax, bx
jl 0x465307
mov byte [edi + 0x1be], al
cmp dword [ebp + 0x50], ebx
jg 0x465333
jl 0x465313
cmp dword [ebp + 0x4c], ebx
jae 0x465333
cmp dword [ebp + 0x2c], ebx
jl 0x4653ac
jg 0x465327
cmp dword [ebp + 0x28], ebx
jb 0x4653ac
mov eax, dword [ebp - 0x10c]
lea eax, [esi + eax - 1]
jmp 0x465349
cmp dword [ebp + 0x2c], ebx
jg 0x46536a
jl 0x46533f
cmp dword [ebp + 0x28], ebx
jae 0x46536a
mov eax, dword [ebp - 0xec]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x57]
push ecx
push dword [ebp + 0x44]
lea ecx, [ebp + 2]
push dword [ebp + 0x40]
push ecx
lea ecx, [ebp - 0x45]
push ecx
lea ecx, [ebp - 0x7c]
push ecx
push ebx
push eax
call fcn.00441b06
add esp, 0x20
cmp dword [ebp + 0x50], ebx
jl 0x4653a0
jg 0x465376
cmp dword [ebp + 0x4c], ebx
jb 0x4653a0
mov al, byte [ebp - 0xa1]
mov byte [edi + 0x1bf], al
mov al, byte [ebp + 0x1d]
mov byte [edi + 0x1c0], al
mov al, byte [ebp + 0x30]
mov byte [edi + 0x1c1], al
mov eax, dword [ebp - 0xec]
mov dword [edi + 0x1c6], eax
cmp dword [ebp + 0x2c], ebx
jg 0x4653b8
jl 0x4653ac
cmp dword [ebp + 0x28], ebx
jae 0x4653b8
cmp dword [ebp + 0x50], ebx
jl 0x4653d3
jg 0x4653b8
cmp dword [ebp + 0x4c], ebx
jb 0x4653d3
mov al, byte [ebp - 0x45]
mov byte [edi + 0x1c3], al
mov al, byte [ebp + 2]
mov byte [edi + 0x1c4], al
mov al, byte [ebp - 0x7c]
mov byte [edi + 0x1c5], al
cmp dword [ebp + 0x2c], ebx
jl 0x4653eb
jg 0x4653df
cmp dword [ebp + 0x28], ebx
jb 0x4653eb
mov eax, dword [ebp - 0x10c]
mov dword [edi + 0x1ca], eax
cmp dword [ebp - 0x58], ebx
jge 0x465411
cmp word [ebp - 0xa8], bx
jge 0x465411
cmp dword [ebp + 0x50], ebx
jg 0x465411
jl 0x465405
cmp dword [ebp + 0x4c], ebx
jae 0x465411
cmp dword [ebp + 0x2c], ebx
jl 0x465424
jg 0x465411
cmp dword [ebp + 0x28], ebx
jb 0x465424
mov esi, dword [ebp + 0x18]
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
jmp 0x465427
mov esi, dword [ebp + 0x18]
cmp word [ebp - 0xa8], bx
jge 0x46545b
cmp dword [ebp - 0x58], ebx
jge 0x46545b
cmp dword [ebp + 0x50], ebx
jg 0x46545b
jl 0x465441
cmp dword [ebp + 0x4c], ebx
jae 0x46545b
cmp dword [ebp + 0x2c], ebx
jg 0x46545b
jl 0x46544d
cmp dword [ebp + 0x28], ebx
jae 0x46545b
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
cmp eax, dword [ebp - 0x128]
jne 0x4672ad
cmp edx, dword [ebp - 0x124]
jne 0x4672ad
mov eax, dword [ebp - 0x14c]
or eax, dword [ebp - 0x148]
mov dword [ebp + 0x40], 1
jne 0x4654a7
push esi
call fcn.00441b98
pop ecx
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x38]
call fcn.00444473
add esp, 0xc
test eax, eax
jne 0x4654d8
push ebx
lea eax, [ebp - 0x50]
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 + 0x40], eax
call fcn.00441b80
pop ecx
cmp dword [ebp + 0x50], ebx
jl 0x4655d4
jg 0x4654f0
cmp dword [ebp + 0x4c], 0x200
jb 0x4655d4
cmp dword [ebp + 0x2c], 0
jl 0x4655d4
jg 0x465509
cmp dword [ebp + 0x28], 0x200
jbe 0x4655d4
cmp byte [ebp - 0x95], 0
jle 0x4655d4
push dword [ebp + 0x20]
push 0
push dword [ebp + 0x18]
call fcn.004aa0a0
add esp, 0xc
push 0
push 0x200
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call fcn.004aa1b0
mov esi, eax
mov ebx, edx
mov edi, esi
add edi, dword [ebp - 0x3c]
mov dword [ebp - 0x200], ebx
adc ebx, dword [ebp - 0x38]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
cmp eax, esi
jne 0x4655d0
cmp edx, dword [ebp - 0x200]
jne 0x4655d0
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x38]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov dword [ebp + 0x40], eax
je 0x4655d0
mov eax, dword [ebp + 0x20]
cmp dword [ebp - 0x50], eax
jne 0x4655d0
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x38]
call fcn.00444473
add esp, 0xc
test eax, eax
jne 0x4655d4
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
cmp eax, esi
jne 0x4655d0
cmp edx, dword [ebp - 0x200]
jne 0x4655d0
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x18]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x40], eax
jmp 0x4655d4
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp + 0x40], eax
sete al
cmp byte [ebp + 0x5f], 0
mov esi, eax
mov dword [ebp - 0x10], esi
jne 0x4655f7
cmp byte [ebp + 0x65], 0
jne 0x4655f7
cmp byte [ebp + 0x26], 0
je 0x4672e8
and dword [ebp + 0x40], 0
jmp 0x466387
cmp byte [ebp + 0xb], 0
je 0x46560a
mov byte [ebp - 0x27], 0
cmp byte [ebp + 0x57], 0
je 0x46561e
cmp byte [ebp + 0x5e], 0
jne 0x46561e
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x38], eax
jmp 0x465625
mov dword [ebp + 0x38], 0x80
mov eax, dword [ebp - 0x8c]
cdq
mov edi, edx
push edi
mov esi, eax
push esi
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call fcn.004aa100
push edi
push esi
push dword [ebp - 0xe0]
mov dword [ebp + 0x4c], eax
push dword [ebp - 0xe4]
mov dword [ebp + 0x50], edx
call fcn.004aa100
push edi
push esi
push dword [ebp + 0x2c]
mov dword [ebp - 0xe4], eax
push dword [ebp + 0x28]
mov dword [ebp - 0xe0], edx
call fcn.004aa100
mov esi, eax
sub esi, 1
mov edi, edx
sbb edi, 0
cmp byte [ebp - 0x1e], 0
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edi
je 0x4656ad
mov esi, eax
add esi, dword [ebp + 0x4c]
mov edi, edx
adc edi, dword [ebp + 0x50]
sub esi, 1
sbb edi, 0
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edi
and dword [ebp - 0x100], 0
and dword [ebp - 0xfc], 0
cmp byte [ebp + 0x5e], 1
jne 0x465739
test byte [ebp - 0x48], 0x10
je 0x4656eb
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
mov esi, eax
sub esi, 1
mov edi, ecx
sbb edi, 0
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edi
jmp 0x4656f7
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x154]
cmp dword [ebp + 0x50], 0
jg 0x465710
jl 0x465705
cmp dword [ebp + 0x4c], 1
jae 0x465710
and dword [ebp + 0x50], 0
mov dword [ebp + 0x4c], 1
test edi, edi
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], edi
jg 0x46573f
jl 0x465727
cmp esi, 1
jae 0x46573f
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], ecx
cmp byte [ebp + 0x5e], 0
je 0x465747
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x50]
jmp 0x46574b
xor eax, eax
xor ecx, ecx
push dword [ebp - 0x38]
lea edx, [ebp - 0x100]
push dword [ebp - 0x3c]
push edx
push ecx
push eax
push dword [ebp + 0x20]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x38]
push dword [ebp + 0x14]
push eax
call fcn.00448d3f
add esp, 0x24
cmp byte [ebp + 0x57], 0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], edx
jne 0x465796
or eax, edx
jne 0x465796
and dword [ebp - 0x90], 0
mov dword [ebp - 0x94], 1
cmp dword [ebp - 0xfc], 0
jl 0x4670ce
jg 0x4657b2
cmp dword [ebp - 0x100], 0x20
jb 0x4670ce
cmp byte [ebp + 0x66], 2
mov eax, dword [ebp + 0x38]
je 0x46735b
cmp dword [ebp + 0x60], eax
mov dword [ebp + 4], 1
jae 0x4657f3
cmp dword [ebp - 0x60], eax
jge 0x4657f3
cmp dword [ebp + 0x60], 0
jl 0x4657f7
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0xc]
push 0x10
push 0x4c3200
push eax
call fcn.0043ddc8
add esp, 0xc
test eax, eax
jne 0x4657f7
and dword [ebp + 4], 0
mov ecx, dword [ebp + 0x20]
xor edx, edx
lea eax, [ecx + 0x3fff]
div ecx
cmp byte [ebp + 0x5e], 1
mov dword [ebp + 0x10], eax
jne 0x465b36
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x60], eax
jae 0x4670ce
mov edx, dword [ebp - 0xc]
mov dword [ebp + 0x18], edx
mov edx, dword [ebp - 0x94]
shl eax, 7
inc edx
imul edx, ecx
mov ecx, 0x4800
sub ecx, edx
cmp byte [ebp + 3], 0
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x30], ecx
jg 0x465870
jge 0x46585d
xor edx, edx
cmp dword [ebp - 0x38], edx
jg 0x465870
jl 0x46585d
mov edx, dword [ebp + 0x20]
lea edx, [edx + edx + 0x4000]
cmp dword [ebp - 0x3c], edx
ja 0x465870
xor edx, edx
test eax, eax
mov byte [ebp + 0x1d], 0
mov dword [ebp + 0x34], edx
jle 0x465913
jmp 0x4658c2
cmp dword [ebp + 0x20], 0x200
mov byte [ebp + 0x1d], 1
jbe 0x465899
mov eax, dword [ebp + 0x20]
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x14]
add eax, 0x200
push 0
push eax
call fcn.004aa0a0
add esp, 0xc
mov eax, dword [ebp + 0x20]
add eax, 0xffffffa4
push eax
lea eax, [ebx + 0x5c]
push 0
push eax
call fcn.004aa0a0
push 0x4000
push 0
push dword [ebp - 0xc]
call fcn.004aa0a0
add esp, 0x18
jmp 0x465913
mov ecx, dword [ebp + 0x30]
cmp edx, ecx
jl 0x4658dc
push 0x10
push 0
push dword [ebp + 0x18]
call fcn.004aa0a0
add esp, 0xc
mov eax, 0x80
jmp 0x465905
push 0x1b0
push 0
push dword [ebp + 0x18]
call fcn.004aa0a0
mov eax, dword [ebp + 0x18]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.004aa0a0
add esp, 0x18
mov eax, 0x200
add dword [ebp + 0x34], eax
mov edx, dword [ebp + 0x34]
add dword [ebp + 0x18], eax
cmp edx, dword [ebp - 0x7c]
jl 0x4658bf
push 0x38
push 0
push ebx
call fcn.004aa0a0
push 0x14
lea eax, [ebx + 0x48]
push 0
push eax
call fcn.004aa0a0
mov eax, dword [ebp + 0x14]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.004aa0a0
mov eax, dword [ebp + 0x14]
add esp, 0x24
cmp byte [ebp + 0x1d], 0
mov word [eax + 0x1fe], 0xaa55
jne 0x465960
cmp dword [ebp + 0x20], 0x200
jbe 0x465960
mov word [ebx - 2], 0xaa55
push 8
push str.EFI_PART
push ebx
call fcn.00413fe3
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0x100]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x50]
push dword [ebp + 0x14]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp + 0x10]
cdq
mov dword [ebp - 0x1d4], eax
add eax, dword [ebp + 0x4c]
mov dword [ebp - 0x1d0], edx
adc edx, dword [ebp + 0x50]
add eax, 1
adc edx, 0
mov dword [ebx + 0x20], ecx
sub ecx, dword [ebp - 0x1d4]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0xfc]
sbb eax, dword [ebp - 0x1d0]
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.00441b98
lea eax, [ebx + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 0x10
cmp ecx, 0x20323354
jne 0x4659fc
cmp edx, 0x2020
je 0x465a36
cmp ecx, 0x20363154
jne 0x465a0c
cmp edx, 0x2020
je 0x465a36
mov esi, ecx
or esi, edx
je 0x465a30
cmp ecx, 0xffffffff
jne 0x465a1b
cmp edx, ecx
je 0x465a30
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov esi, ecx
or esi, edx
je 0x465a30
cmp ecx, 0xffffffff
jne 0x465a54
cmp edx, ecx
jne 0x465a54
mov esi, dword [ebp - 0xf4]
push 0xc
push 0x4c6360
push eax
call fcn.00413fe3
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x1b8]
add esp, 0xc
mov dword [ebx + 0x44], eax
jmp 0x465a5a
mov esi, dword [ebp - 0xf4]
lea eax, [ebx - 0x174]
push eax
call fcn.00441b98
mov eax, dword [ebp + 0x4c]
add eax, 1
pop ecx
mov ecx, dword [ebp + 0x50]
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 0x465a9d
jl 0x465a8f
cmp esi, 1
jae 0x465a9d
or dword [ebp - 0xf4], 0xffffffff
or dword [ebp - 0xf0], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x14]
push 1
push dword [ebp + 0x44]
shl eax, 4
push dword [ebp + 0x40]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x50]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x4c]
call fcn.00441b06
lea eax, [edi + 0x1c3]
add esp, 0x20
cmp byte [ebp + 0x64], 2
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov byte [eax], 0xfe
mov byte [ecx], 0xff
mov byte [edx], 0xfe
jne 0x465b12
push 1
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push ecx
push eax
push edx
push dword [ebp - 0xf0]
push dword [ebp - 0xf4]
call fcn.00441b06
add esp, 0x20
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x1c6], eax
add edi, 0x1ca
or dword [edi], 0xffffffff
cmp byte [ebp + 0x64], 2
jne 0x465e41
mov eax, dword [ebp - 0xf4]
mov dword [edi], eax
cmp byte [ebp + 0x5e], 0
jg 0x465e41
cmp byte [ebp - 0x49], 0
jle 0x465b50
cmp dword [ebp + 0x60], 0
jl 0x465e41
cmp byte [ebp + 0x67], 0
je 0x465ba6
or dword [ebp + 0x60], 0xffffffff
xor esi, esi
cmp dword [ebp + 0x38], esi
mov byte [ebp - 0x27], 0
jbe 0x465ba6
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x7c], eax
mov edi, 0x80
push 0x10
push 0x4c3200
push dword [ebp - 0x7c]
call fcn.0043ddc8
add esp, 0xc
test eax, eax
je 0x465b91
add dword [ebp - 0x7c], edi
inc esi
cmp esi, dword [ebp + 0x38]
jb 0x465b70
jmp 0x465ba6
mov dword [ebp + 0x60], esi
push edi
shl esi, 7
add esi, dword [ebp - 0xc]
push 0
push esi
call fcn.004aa0a0
add esp, 0xc
mov eax, dword [ebp + 0x38]
dec dword [ebp - 0x60]
cmp dword [ebp + 0x60], eax
jae 0x4670ce
cmp dword [ebp - 0x60], eax
jge 0x4670ce
cmp byte [ebp - 0x27], 0
je 0x465cbe
xor ecx, ecx
cmp byte [ebp + 0x57], cl
je 0x465c1b
mov eax, dword [ebp - 0xc]
add eax, 0x20
cmp ecx, dword [ebp + 0x38]
jae 0x465c1b
mov edx, dword [eax]
cmp edx, dword [ebp + 0x4c]
jne 0x465be9
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x50]
je 0x465bf1
inc ecx
add eax, 0x80
jmp 0x465bd5
mov edx, dword [ebp - 0xc]
mov eax, ecx
shl eax, 7
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4c3200
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 0x465c1b
push 0x80
push 0
push eax
call fcn.004aa0a0
add esp, 0xc
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0xc]
shl eax, 7
push 0x10
add eax, ecx
push 0x4c3200
push eax
mov dword [ebp + 0x30], eax
call fcn.0043ddc8
add esp, 0xc
test eax, eax
je 0x465ca8
mov edi, dword [ebp + 0x60]
inc edi
cmp edi, dword [ebp + 0x38]
mov dword [ebp + 0x44], edi
jae 0x4670ce
mov esi, edi
shl esi, 7
add esi, dword [ebp - 0xc]
push 0x10
push 0x4c3200
push esi
call fcn.0043ddc8
add esp, 0xc
test eax, eax
je 0x465c7a
inc edi
add esi, 0x80
cmp edi, dword [ebp + 0x38]
mov dword [ebp + 0x44], edi
jb 0x465c55
jmp 0x465c9c
cmp edi, dword [ebp + 0x60]
jle 0x465c9c
mov eax, dword [ebp + 0x44]
mov edi, eax
shl edi, 7
add edi, dword [ebp - 0xc]
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 0x465c8d
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x44], eax
jae 0x4670ce
push 0x80
push 0
push dword [ebp + 0x30]
call fcn.004aa0a0
add esp, 0xc
and dword [ebp + 4], 0
cmp byte [ebp + 0x5e], 1
je 0x465e22
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp eax, ecx
jge 0x465ddb
cmp dword [ebp + 4], ecx
jne 0x465d01
xor eax, eax
inc eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x174], ecx
jle 0x465d1e
mov edi, dword [ebp + 0x60]
shl edi, 7
add edi, dword [ebp - 0xc]
lea esi, [ebp - 0x1c0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x178], ecx
jle 0x465d3f
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0xc]
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 - 0x17c], ecx
mov eax, dword [ebp - 0xc]
jle 0x465d5e
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x4c]
shl edx, 7
mov dword [edx + eax + 0x20], esi
mov esi, dword [ebp + 0x50]
mov dword [edx + eax + 0x24], esi
cmp dword [ebp - 0x180], ecx
jle 0x465d80
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0xf4]
shl edx, 7
mov dword [edx + eax + 0x28], esi
mov esi, dword [ebp - 0xf0]
mov dword [edx + eax + 0x2c], esi
cmp dword [ebp - 0x188], ecx
jle 0x465da2
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0x15c]
shl edx, 7
mov dword [edx + eax + 0x30], esi
mov esi, dword [ebp - 0x158]
mov dword [edx + eax + 0x34], esi
cmp dword [ebp - 0x184], ecx
jle 0x465e22
mov eax, dword [ebp - 0x30]
cmp word [eax], 0
je 0x465e22
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0xc]
shl eax, 7
push 0x48
lea esi, [eax + ecx + 0x38]
push 0
push esi
call fcn.004aa0a0
add esp, 0xc
push 0x24
push dword [ebp - 0x30]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x465e22
cmp eax, dword [ebp + 0x60]
je 0x465e22
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0xc]
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 - 0x60]
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 - 0x60]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x34c]
rep movsd dword es:[edi], dword [esi]
jge 0x465e22
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0xb], 0
je 0x465e41
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0xc]
push 0x80
push 0
push eax
call fcn.004aa0a0
add esp, 0xc
and dword [ebp + 0x44], 0
cmp byte [ebp - 0x49], 1
jne 0x465f6b
cmp byte [ebp + 0x5e], 1
je 0x465f6b
and dword [ebp - 0x8c], 0
mov eax, dword [ebp + 0x38]
and dword [ebp + 0x34], 0
dec eax
test eax, eax
mov dword [ebp - 0x7c], eax
jl 0x465f6b
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x40], eax
xor esi, esi
push 0x10
push 0x4c3200
push dword [ebp + 0x18]
call fcn.0043ddc8
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x1d], al
jne 0x465ea9
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x8c]
mov dword [ebp + 0x30], esi
je 0x465eb0
mov dword [ebp + 0x30], 1
cmp byte [ebp + 0x1d], 0
mov dword [ebp + 4], esi
jne 0x465f29
mov eax, dword [ebp - 0x8c]
cmp dword [ebp + 0x34], eax
je 0x465f1a
push 0x38
push dword [ebp + 0x18]
push dword [ebp + 0x40]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
je 0x465eef
push 0x38
push dword [ebp + 0x18]
mov dword [ebp + 4], 1
push dword [ebp + 0x40]
call fcn.004aa750
add esp, 0xc
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0x40]
push 0x24
add esi, 0x38
push esi
add edi, 0x38
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
je 0x465f1a
push 0x24
push esi
push edi
mov dword [ebp + 4], 1
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
inc dword [ebp - 0x8c]
add dword [ebp + 0x40], 0x80
xor esi, esi
cmp dword [ebp + 0x30], esi
je 0x465f49
cmp byte [ebp + 0x1d], 0
jne 0x465f49
push 0x10
push esi
push dword [ebp + 0x18]
mov dword [ebp + 4], 1
call fcn.004aa0a0
add esp, 0xc
cmp dword [ebp + 4], esi
je 0x465f55
mov eax, dword [ebp + 0x34]
inc eax
mov dword [ebp + 0x44], eax
inc dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
add dword [ebp + 0x18], 0x80
cmp eax, dword [ebp - 0x7c]
jle 0x465e7e
push 8
push str.EFI_PART
push ebx
call fcn.00413fe3
push dword [ebp + 0x14]
call fcn.00441b98
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov edx, eax
add esp, 0x10
or edx, ecx
je 0x465f98
cmp eax, 0xffffffff
jne 0x465fa5
cmp ecx, eax
jne 0x465fa5
lea eax, [ebx - 0x174]
push eax
call fcn.00441b98
pop ecx
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x44], eax
jg 0x465fb1
inc eax
mov dword [ebp + 0x44], eax
cmp byte [ebp + 0x5e], 1
mov eax, dword [ebp + 0x38]
jne 0x465fbd
mov dword [ebp + 0x44], eax
push 0
shl eax, 7
push 0
push eax
push dword [ebp - 0xc]
call fcn.004967f1
mov esi, dword [ebx + 0xc]
add esp, 0x10
cmp esi, 0x20000
mov dword [ebx + 0x58], eax
ja 0x4670ce
xor eax, eax
push eax
push eax
push esi
push ebx
mov dword [ebx + 0x10], eax
call fcn.004967f1
mov edi, dword [ebp - 0x170]
push esi
push ebx
push edi
mov dword [ebx + 0x10], eax
call fcn.00413fe3
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.004967f1
mov esi, dword [ebp + 0x20]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x10]
add esp, 0x2c
inc eax
imul eax, esi
push eax
lea ecx, [ebp - 0x1c]
call fcn.0044404a
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x44]
shl eax, 7
lea eax, [eax + esi - 1]
xor edx, edx
div esi
push 0
push dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
push dword [ebp - 0x3c]
imul eax, esi
mov dword [ebp - 0x170], eax
call fcn.0040f390
push esi
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402cb9
push esi
push dword [ebp + 0x14]
push dword [ebp - 0x1c]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
je 0x4660aa
push 0
push dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
push dword [ebp - 0x3c]
call fcn.0040f390
push esi
push dword [ebp + 0x14]
lea ecx, [ebp + 0x6c]
call fcn.0043db8c
mov eax, dword [ebp - 0x170]
xor edx, edx
div esi
mov ecx, dword [ebp - 0x90]
xor edx, edx
push edx
push edx
push esi
push ecx
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0xc4], ecx
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x94]
push eax
mov dword [ebp - 0xc8], eax
call fcn.004aa1b0
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f390
mov eax, dword [ebp + 0x18]
imul eax, esi
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402cb9
xor ebx, ebx
cmp dword [ebp + 0x18], ebx
jle 0x4661d2
jmp 0x466135
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
jne 0x46613a
inc ebx
add dword [ebp - 0xc8], 1
adc dword [ebp - 0xc4], eax
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp ebx, dword [ebp + 0x18]
jl 0x46610e
cmp ebx, dword [ebp + 0x10]
jge 0x4661d2
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x1f8], eax
jmp 0x46618b
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
je 0x466190
inc ebx
add dword [ebp - 0xc8], 1
adc dword [ebp - 0xc4], 0
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp ebx, dword [ebp + 0x18]
jl 0x466163
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
call fcn.004aa1b0
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f390
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x30]
lea ecx, [ebp + 0x6c]
push eax
push dword [ebp + 0x30]
call fcn.0043db8c
cmp ebx, dword [ebp + 0x18]
jl 0x46610e
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x100]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x10]
cdq
sub ebx, eax
mov eax, dword [ebp - 0xfc]
sbb eax, edx
push 0
xor ecx, ecx
push ecx
push esi
push eax
push ebx
mov dword [ebp - 0xc4], eax
call fcn.004aa1b0
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f390
mov eax, dword [ebp + 0x10]
imul eax, esi
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402cb9
and dword [ebp + 0x44], 0
cmp dword [ebp + 0x10], 0
jle 0x466305
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x44], eax
jge 0x466305
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
jne 0x46626e
inc dword [ebp + 0x44]
add ebx, 1
adc dword [ebp - 0xc4], eax
mov eax, dword [ebp + 0x44]
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp eax, dword [ebp + 0x10]
jl 0x466241
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x44], eax
jge 0x466305
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x1e0], eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
je 0x4662c0
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
add ebx, 1
adc dword [ebp - 0xc4], 0
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp eax, dword [ebp + 0x10]
jl 0x466292
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
call fcn.004aa1b0
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f390
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x30]
lea ecx, [ebp + 0x6c]
push eax
push dword [ebp + 0x30]
call fcn.0043db8c
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x44], eax
jl 0x466235
xor eax, eax
push eax
push esi
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
call fcn.004aa1b0
mov ebx, eax
add ebx, dword [ebp - 0x3c]
push 0
adc edx, dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
push edx
push ebx
mov dword [ebp - 0x134], edx
call fcn.0040f390
push esi
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402cb9
push esi
push edi
push dword [ebp - 0x1c]
call fcn.004ac5e0
add esp, 0xc
test eax, eax
je 0x46636c
push 0
push dword [ebp - 0x134]
lea ecx, [ebp + 0x6c]
push ebx
call fcn.0040f390
push esi
push edi
lea ecx, [ebp + 0x6c]
call fcn.0043db8c
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x5f]
lea ecx, [ebp - 0x1c]
or al, byte [ebp + 0x26]
je 0x467581
and dword [ebp + 0x40], 0
call fcn.0043dd41
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
mov bl, byte [ebp + 0x27]
xor edi, edi
cmp dword [ebp - 0x24], edi
jl 0x466435
cmp bl, 0x20
je 0x4663b7
cmp bl, 0x10
jne 0x4663bd
cmp dword [ebp - 0x44], 0xb
je 0x4663e1
test byte [ebp + 0x5f], 0x20
jne 0x4663e1
cmp byte [ebp + 0x5f], 0
je 0x4663cf
cmp dword [ebp - 0x44], 0xb
je 0x4663e1
test byte [ebp + 0x65], 0x20
jne 0x4663e1
cmp byte [ebp + 0x65], 0
je 0x466435
cmp dword [ebp - 0x44], 0xb
jne 0x466435
cmp byte [ebp - 0x28], 0
jg 0x466495
test byte [0x4d8450], 0x20
jne 0x466406
test byte [ebp + 0x68], 0x20
jne 0x466406
push 1
push dword [ebp - 0x24]
call fcn.00452767
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4d8450], 0x10
jne 0x466431
test byte [ebp + 0x68], 0x11
jne 0x466431
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x24]
call fcn.00405214
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp - 0x28], 0
jg 0x466495
cmp byte [ebp + 0x26], 0
jne 0x466451
cmp bl, 1
je 0x466451
cmp bl, 0x20
je 0x466451
cmp byte [ebp + 0x5f], 0
je 0x466495
push dword [ebp + 0x6c]
call fcn.00441b80
pop ecx
push edi
lea eax, [ebp - 0x198]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x198], edi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x466482
xor eax, eax
jmp 0x466488
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp bl, 1
je 0x466492
cmp bl, 0x20
jne 0x466495
mov dword [ebp - 0x10], eax
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
xor esi, esi
test byte [ebp + 0x65], 0x20
jne 0x4664bc
cmp byte [ebp + 0x65], 0
je 0x4664b1
cmp dword [ebp - 0x44], 0xb
je 0x4664bc
test bl, 0x10
je 0x4664f4
cmp dword [ebp - 0x44], 0xc
je 0x4664f4
lea ecx, [ebp + 0x68]
call fcn.00441bc6
cmp byte [ebp - 0x28], 0
jg 0x4664f4
xor eax, eax
cmp bl, 0x18
setne al
push 0x4bdf78
dec eax
and eax, 0x17
inc eax
push eax
push edi
push dword [ebp - 0xf8]
call fcn.0045189e
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp byte [ebp + 0x4b], 0
je 0x46755d
cmp dword [ebp + 0x40], edi
je 0x46755d
xor ebx, ebx
or esi, 0xffffffff
jmp 0x463e88
cmp dword [ebp - 0x14], ebx
jge 0x466525
mov ecx, dword [ebp - 0xc0]
cmp word [ecx], bx
je 0x464b80
mov edi, 0x1b8
mov dword [ebp + 0x44], edi
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x190], ebx
mov dword [ebp - 0x18c], ebx
cmp word [eax], bx
je 0x46667f
push dword [ebp - 8]
push 0x4c635c
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x46667f
push dword [ebp - 8]
push 0x4c22e8
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x46667f
mov edi, dword [ebp - 8]
push edi
push 0x4c6358
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46659d
mov dword [ebp + 0x34], 0x4d6368
mov dword [ebp + 0x44], 0x190
jmp 0x46669b
push edi
push 0x4c6354
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4665c1
mov dword [ebp + 0x34], 0x4d64f8
mov dword [ebp + 0x44], 0x180
jmp 0x46669b
mov dword [ebp + 0x44], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
jne 0x4665f8
lea eax, [ebp - 0x94]
push eax
inc edi
lea eax, [ebp - 8]
inc edi
push eax
mov dword [ebp - 8], edi
call fcn.0044908a
mov edi, dword [ebp - 8]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x4665f8
inc edi
inc edi
cmp word [edi], 0x23
jne 0x466636
push edi
lea ecx, [ebp + 0x30]
call fcn.0044cf2d
push ebx
lea eax, [ebp - 0x194]
push eax
push str.EXEDATA
push dword [ebp + 0x30]
push ebx
call fcn.00414f82
add esp, 0x14
lea ecx, [ebp + 0x30]
mov dword [ebp + 0x34], eax
call fcn.0043dd41
mov eax, dword [ebp - 0x190]
mov dword [ebp + 0x44], eax
jmp 0x46664d
lea eax, [ebp + 0x44]
push eax
push ebx
push edi
call fcn.0040fc70
add esp, 0xc
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x90], ebx
jl 0x466689
jg 0x46665f
cmp dword [ebp - 0x94], ebx
jb 0x466689
cmp ebx, dword [ebp - 0x90]
jl 0x466689
jg 0x466674
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp - 0x94]
jbe 0x466689
mov eax, dword [ebp - 0x94]
mov dword [ebp + 0x44], eax
jmp 0x466689
mov dword [ebp + 0x34], 0x4d6678
mov dword [ebp + 0x44], edi
cmp dword [ebp + 0x44], ebx
jbe 0x466841
cmp dword [ebp + 0x34], ebx
je 0x466841
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.0040569f
cmp dword [ebp + 0x6c], ebx
je 0x466841
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.00441575
cmp eax, esi
pop ecx
pop ecx
mov edi, eax
jge 0x4666da
mov edi, esi
mov ecx, dword [ebp + 0x44]
lea eax, [edi - 1]
add ecx, eax
not eax
and ecx, eax
cmp ecx, edi
mov dword [ebp - 0x64], ecx
mov ebx, ecx
jge 0x4666f1
mov ebx, edi
lea eax, [edi + ebx*2]
push eax
lea ecx, [ebp - 0x30]
call fcn.0044404a
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xb0]
lea esi, [edi - 1]
add eax, edi
not esi
and esi, eax
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0xac]
lea edi, [esi + ebx]
je 0x466730
push edx
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x466821
cmp edx, dword [ebp - 0x38]
jne 0x466821
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x64]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x466821
push dword [ebp - 0x64]
push edi
push esi
call fcn.00413fe3
mov ecx, dword [ebp + 0x44]
mov eax, 0x1b8
add esp, 0xc
cmp ecx, eax
jle 0x466778
mov ecx, eax
mov ebx, dword [ebp + 0x34]
push ecx
push ebx
push edi
call fcn.00413fe3
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x44]
add esp, 0xc
cmp eax, 0x200
jbe 0x4667ba
add eax, 0xfffffe00
push eax
add ebx, 0x200
lea eax, [edi + 0x200]
push ebx
push eax
call fcn.00413fe3
add esp, 0xc
push dword [ebp - 0x64]
push edi
push esi
call fcn.00444473
add esp, 0xc
test eax, eax
jne 0x466809
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x466821
cmp edx, dword [ebp - 0x38]
jne 0x466821
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x64]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.00441b80
test esi, esi
pop ecx
je 0x466821
lea ecx, [ebp - 0x30]
call fcn.0043dd41
lea ecx, [ebp - 0x194]
call fcn.0043dd41
jmp 0x46728a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x46682e
inc esi
lea ecx, [ebp - 0x30]
call fcn.0043dd41
lea ecx, [ebp - 0x194]
jmp 0x466c69
lea ecx, [ebp - 0x194]
call fcn.0043dd41
jmp 0x4672c5
cmp ecx, ebx
jle 0x464b80
cmp dword [ebp - 0x14], ebx
jge 0x46686d
mov eax, dword [ebp - 0xc0]
cmp word [eax], bx
je 0x464b80
xor eax, eax
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp + 0x30], esi
jge 0x46688c
xor al, al
jne 0x4668b6
jmp 0x464b80
push dword [ebp - 0x5c]
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x18]
lea eax, [ebp + 0xc]
push ecx
push dword [ebp - 0x14]
push eax
call fcn.0046205d
add esp, 0x1c
cmp dword [ebp + 0x30], ebx
jle 0x4672c5
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 8], 0x200
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
cmp word [edi], bx
je 0x466a4d
push edi
push 0x4c635c
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x466a4d
push edi
push 0x4c22e8
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x466a4d
push edi
push 0x4c6354
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x466920
push 8
jmp 0x466a4f
push edi
push str.nt6fat
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x466a49
push edi
push str.winfat
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x466a49
push edi
push 0x4c6358
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x466962
push 6
jmp 0x466a4f
push edi
push str.nt5fat
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46697a
push 5
jmp 0x466a4f
mov dword [ebp - 8], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
jne 0x4669ba
lea eax, [ebp - 0x94]
push eax
inc edi
lea eax, [ebp - 0xb4]
inc edi
push eax
mov dword [ebp - 0xb4], edi
call fcn.0044908a
mov edi, dword [ebp - 0xb4]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x4669ba
inc edi
inc edi
cmp word [edi], 0x23
jne 0x4669f8
push edi
lea ecx, [ebp + 0x30]
call fcn.0044cf2d
push ebx
lea eax, [ebp - 0x13c]
push eax
push str.EXEDATA
push dword [ebp + 0x30]
push ebx
call fcn.00414f82
add esp, 0x14
lea ecx, [ebp + 0x30]
mov dword [ebp - 0x44], eax
call fcn.0043dd41
mov eax, dword [ebp - 0x138]
mov dword [ebp - 8], eax
jmp 0x466a0f
lea eax, [ebp - 8]
push eax
push ebx
push edi
call fcn.0040fc70
add esp, 0xc
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x90], ebx
jl 0x466a3f
jg 0x466a21
cmp dword [ebp - 0x94], ebx
jb 0x466a3f
cmp ebx, dword [ebp - 0x90]
jl 0x466a3f
jg 0x466a36
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x94]
jbe 0x466a3f
mov eax, dword [ebp - 0x94]
mov dword [ebp - 8], eax
cmp dword [ebp - 0x44], ebx
jne 0x466a78
jmp 0x466aee
push 7
jmp 0x466a4f
push 9
pop eax
push ebx
lea ecx, [ebp - 0x13c]
push ecx
push str.INDATA
push eax
push ebx
call fcn.00414f82
add esp, 0x14
cmp dword [ebp - 8], ebx
mov dword [ebp - 0x44], eax
je 0x466aee
mov eax, dword [ebp - 0x138]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], ebx
jbe 0x466aee
cmp dword [ebp - 0x44], ebx
je 0x466aee
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.0040569f
cmp dword [ebp + 0x6c], ebx
je 0x466aee
push ebx
push 0x200
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.004aa1b0
mov esi, eax
add esi, dword [ebp - 0x15c]
mov edi, edx
adc edi, dword [ebp - 0x158]
push ebx
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], edi
call fcn.0043f027
add esp, 0x10
cmp eax, esi
jne 0x466aee
cmp edx, edi
je 0x466af9
lea ecx, [ebp - 0x13c]
jmp 0x466847
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.00441575
cmp eax, esi
pop ecx
pop ecx
mov edi, eax
jge 0x466b11
mov edi, esi
mov ecx, dword [ebp - 8]
lea eax, [edi - 1]
lea esi, [eax + ecx]
not eax
and esi, eax
lea eax, [edi + esi*2]
push eax
lea ecx, [ebp + 4]
call fcn.0044404a
mov eax, dword [ebp + 4]
lea ebx, [edi - 1]
add eax, edi
push 0
not ebx
and ebx, eax
lea eax, [ebp - 0x50]
push eax
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x466b7d
lea ecx, [ebp + 4]
call fcn.0043dd41
lea ecx, [ebp - 0x13c]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
test eax, eax
jmp 0x4672dc
push esi
push edi
push ebx
call fcn.00413fe3
push 0
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push dword [ebp + 0x6c]
call fcn.0043f027
add esp, 0x1c
cmp eax, dword [ebp - 0xdc]
jne 0x466b4e
cmp edx, dword [ebp - 0xd8]
jne 0x466b4e
mov eax, dword [ebp - 8]
push 3
push dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
push edi
call fcn.00413fe3
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x30], eax
jle 0x466bcf
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp - 0x44]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.00413fe3
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp - 8]
add esp, 0xc
cmp eax, 0x200
jbe 0x466c1f
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x44]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.00413fe3
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x40], 1
call fcn.00444473
add esp, 0xc
test eax, eax
jne 0x466c51
push eax
lea eax, [ebp - 0x50]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x40], eax
call fcn.00441b80
pop ecx
xor eax, eax
cmp dword [ebp + 0x40], eax
lea ecx, [ebp + 4]
sete al
mov esi, eax
call fcn.0043dd41
lea ecx, [ebp - 0x13c]
call fcn.0043dd41
jmp 0x467300
push 0x103c
lea ecx, [ebp + 0xc]
call fcn.004441e6
mov esi, dword [ebp + 0xc]
mov ax, word [edi]
add esi, 0x2000
cmp ax, bx
mov dword [ebp + 0x34], 0x4bdf78
je 0x466cdf
cmp word [edi + 2], 0x3a
jne 0x466cdf
movzx eax, ax
push eax
push 0x4c632c
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 0x466cd1
cmp dword [ebp - 0x84], 0x10
jne 0x466d2e
mov dword [ebp + 0x34], 0x4bdf58
cmp eax, 5
jne 0x466d2e
mov dword [ebp + 0x34], 0x4bdf68
jmp 0x466d2e
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jl 0x466d2e
cmp dword [ebp - 0x84], 8
jne 0x466d05
push eax
push str..CDROM_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov dword [ebp + 0x34], 0x4bdf68
jmp 0x466d2b
cmp dword [ebp - 0x84], 0x10
jne 0x466d1e
and eax, 0xfff
mov esi, eax
mov dword [ebp + 0x34], 0x4bdf58
jmp 0x466d2e
push eax
push str..PhysicalDrive_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
movzx eax, word [ebp - 0x88]
push dword [ebp + 0x34]
or eax, 0x20
push eax
push dword [ebp + 0xc]
push esi
call fcn.0045189e
mov ecx, dword [ebp - 0xb8]
add esp, 0x10
push dword [ebp + 0xc]
push dword [ebp - 0xbc]
call fcn.004438ac
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
jmp 0x4672a1
cmp byte [ebp - 0x25], 0
je 0x466d87
cmp dword [ebp - 0x24], ebx
jl 0x467653
mov al, byte [ebp - 0x26]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x24]
or eax, dword [ebp - 0x120]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00461cae
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
xor eax, eax
cmp word [ecx], bx
sete al
mov dword [ebp - 0x10], eax
jmp 0x467653
cmp dword [ebp - 0x24], ebx
jl 0x467653
cmp byte [ebp - 0x1d], 0
je 0x466dd2
cmp ecx, ebx
jl 0x467653
push dword [ebp - 0x5c]
movsx eax, byte [ebp - 0x26]
or eax, dword [ebp - 0x18]
push ebx
push ebx
push eax
push ecx
push dword [ebp - 0x24]
lea eax, [ebp + 0xc]
push eax
call fcn.0046205d
xor ecx, ecx
add esp, 0x1c
test eax, eax
setle cl
mov dword [ebp - 0x10], ecx
jmp 0x467653
cmp dword [ebp - 0x14], ebx
jge 0x466e5c
cmp word [edi], bx
je 0x466e5c
cmp word [edi + 2], 0x3a
jne 0x466e59
cmp word [edi + 4], bx
jne 0x466e59
mov word [ebp - 0x2cc], 0x5c
mov word [ebp - 0x2ca], 0x5c
mov word [ebp - 0x2c8], 0x2e
mov word [ebp - 0x2c6], 0x5c
mov ax, word [edi]
mov word [ebp - 0x2c4], ax
mov word [ebp - 0x2c2], 0x3a
mov word [ebp - 0x2c0], bx
lea edi, [ebp - 0x2cc]
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], ebx
jl 0x467653
cmp byte [ebp - 0x1d], 0
je 0x466e73
cmp ecx, ebx
jl 0x467653
push dword [ebp - 0x84]
lea eax, [ebp + 0xc]
push dword [ebp - 0x24]
push eax
push dword [ebp - 0xb8]
call fcn.0045225b
add esp, 0x10
jmp 0x466db3
mov eax, dword [ebp - 0xcc]
movzx edi, word [eax]
and edi, 0xffffffdf
cmp dword [ebp - 0x84], ebx
lea esi, [edi - 0x41]
jle 0x466f1e
push 0x3b60
lea ecx, [ebp + 0x30]
call fcn.0044404a
mov eax, dword [ebp + 0x30]
mov edx, edi
shl edx, 0x10
or edx, dword [ebp - 0x84]
lea ecx, [eax + 0x200]
push edx
push eax
push ecx
mov dword [ebp - 0x198], ecx
call fcn.00451c53
imul esi, esi, 0x220
mov eax, dword [ebp - 0x198]
add esi, eax
add esp, 0xc
cmp dword [esi + 8], ebx
jle 0x466f11
push 0x64
lea ecx, [ebp + 0xc]
call fcn.004441e6
push edi
push dword [esi + 4]
push str._d__c:
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x10], ebx
lea ecx, [ebp + 0x30]
call fcn.0043dd41
jmp 0x46764b
mov cx, word [eax]
mov edx, dword [ebp + 0xc]
mov word [edx], cx
cmp word [eax], 0x5c
jne 0x466f30
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
cmp word [eax], bx
je 0x46764b
push dword [ebp - 0x5c]
mov eax, dword [ebp - 0x18]
push ebx
and eax, 0xfffffffd
push ebx
or eax, 0xc
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 0xc]
push dword [ebp - 0x24]
push eax
call fcn.0046205d
xor ecx, ecx
add esp, 0x1c
test eax, eax
setle cl
mov dword [ebp - 0x10], ecx
jmp 0x46764b
cmp dword [ebp - 0x14], ebx
jge 0x466fda
cmp word [edi], bx
je 0x466fd8
cmp word [edi + 2], 0x3a
jne 0x466fcb
cmp word [edi + 4], 0x5c
jne 0x466f8e
cmp word [edi + 6], bx
jne 0x466f8e
mov word [edi + 4], bx
cmp word [edi + 4], bx
jne 0x466fcb
push 9
lea ecx, [ebp + 0x58]
call fcn.004441e6
mov eax, dword [ebp + 0x58]
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 0x466fd8
push esi
push edi
lea ecx, [ebp + 0x58]
call fcn.004442c5
mov eax, dword [ebp + 0x58]
mov ecx, esi
cmp ecx, ebx
jg 0x466fe0
mov ecx, esi
push eax
mov eax, dword [ebp - 0x18]
shl eax, 0x10
and ecx, 0xf000ffff
or ecx, eax
push ecx
push dword [ebp - 0x14]
lea eax, [ebp + 0xc]
push eax
call fcn.00404ec1
add esp, 0x10
mov dword [ebp - 0x10], eax
jmp 0x46764b
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x58]
mov esi, eax
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
jmp 0x467317
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
jmp 0x463ed1
lea ecx, [ebp - 0x40]
jmp 0x46727d
lea ecx, [ebp - 0x40]
jmp 0x4670f1
lea ecx, [ebp - 0x40]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, esi
jmp 0x464b97
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
je 0x463e49
push eax
jmp 0x463e43
lea ecx, [ebp - 0x34]
call fcn.0043dd41
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
jmp 0x4643c4
lea ecx, [ebp - 0x34]
call fcn.0043dd41
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
jmp 0x466b61
push 0x28
lea ecx, [ebp + 0xc]
call fcn.004441e6
mov esi, dword [ebp + 0x60]
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
test esi, esi
push 4
mov dword [ebp - 0x88], 0x4bca2c
pop eax
jl 0x467139
lea edx, [esi + 1]
cmp edx, eax
mov ecx, esi
jge 0x467131
mov eax, edx
cmp esi, eax
jge 0x467245
mov esi, dword [ebp + 0x18]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [ecx + 1]
mov dword [ebp - 0x5c], edx
mov edx, ecx
shl edx, 4
sub eax, ecx
lea esi, [edx + esi + 0x1c6]
mov dword [ebp + 0x30], eax
cmp dword [ebp + 0x60], 0
mov al, byte [esi - 4]
mov byte [ebp - 0x1e], al
jge 0x4671ab
cmp al, 5
je 0x467172
cmp al, 0xf
mov ecx, 0x4bca2c
jne 0x467177
mov ecx, 0x4c6328
xor edx, edx
test al, al
setne dl
lea edx, [edx + edx - 1]
imul edx, dword [ebp - 0x5c]
push edx
push ecx
push dword [ebp - 0x88]
push str._s_s_d
push ebx
call edi
add esp, 0x14
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x88], 0x4bd4ac
jmp 0x467236
test al, al
je 0x467236
push dword [ebp - 0x5c]
push dword [ebp - 0x88]
push str._s_d
push ebx
call edi
add esp, 0x10
test byte [ebp - 0x18], 1
lea ebx, [ebx + eax*2]
mov eax, str._0x_X
jne 0x4671da
mov eax, 0x4c62f8
movzx ecx, byte [ebp - 0x1e]
push ecx
push eax
push ebx
call edi
lea ebx, [ebx + eax*2]
movzx eax, byte [esi - 8]
shr eax, 7
push eax
push 0x4c62f8
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.00497dbc
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.00497dbc
add esp, 0x10
inc dword [ebp - 0x5c]
add esi, 0x10
dec dword [ebp + 0x30]
jne 0x467159
cmp dword [ebp - 0x64], 0
jle 0x46725e
push dword [ebp - 0x64]
lea eax, [ebp + 0xc]
push dword [ebp - 0xb8]
call fcn.00448fcb
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call fcn.004438ac
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
test eax, eax
je 0x46373f
push eax
jmp 0x463739
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
je 0x463db8
push eax
jmp 0x463db2
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
test eax, eax
je 0x467320
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0xc0]
call fcn.0043dd41
lea ecx, [ebp - 0xbc]
call fcn.0043dd41
lea ecx, [ebp - 0xcc]
call fcn.0043dd41
lea ecx, [ebp - 0x1cc]
call fcn.0043dd41
lea ecx, [ebp + 0xc]
call fcn.0043dd41
mov eax, esi
jmp 0x4676d6
lea eax, [eax + eax*4]
shl eax, 1
push eax
lea ecx, [ebp + 0xc]
call fcn.004441e6
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x38]
xor ecx, ecx
test edx, edx
mov dword [ebp - 0x88], 0x4bca2c
jl 0x46738b
mov ecx, edx
inc edx
cmp eax, edx
jle 0x46738b
mov eax, edx
cmp ecx, eax
jge 0x4674fb
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [ecx + 1]
mov dword [ebp - 0x34], edx
mov edx, ecx
shl edx, 7
add edx, dword [ebp - 0xc]
sub eax, ecx
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne 0x4673c5
mov ecx, dword [eax + 8]
or ecx, dword [eax + 0xc]
je 0x4674e8
cmp dword [ebp + 0x60], 0
push dword [ebp - 0x34]
push dword [ebp - 0x88]
jge 0x4673f2
push str._s_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x88], 0x4bd4ac
jmp 0x4674e5
push 0x4c62dc
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0xc]
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.0044177f
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.004aa1b0
push edx
push eax
push esi
call fcn.00497e07
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.004aa1b0
push edx
push eax
push esi
call fcn.00497e07
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.00497dbc
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.0044177f
add esp, 0xc
test byte [ebp - 0x18], 0x10
je 0x4674e8
push esi
call ebx
push dword [ebp - 0x34]
lea esi, [esi + eax*2]
mov word [esi], 0x20
inc esi
inc esi
push 0x4bd234
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea esi, [esi + eax*2]
add dword [ebp - 0x30], 0x80
inc dword [ebp - 0x34]
dec dword [ebp + 0x30]
jne 0x4673af
xor esi, esi
cmp dword [ebp - 0x64], esi
jle 0x467515
push dword [ebp - 0x64]
lea eax, [ebp + 0xc]
push dword [ebp - 0xb8]
call fcn.00448fcb
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call fcn.004438ac
lea ecx, [ebp + 0x14]
call fcn.0043dd41
lea ecx, [ebp - 4]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, esi
jmp 0x467317
cmp bl, 0x10
je 0x467565
mov esi, dword [ebp - 0x10]
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, edi
jmp 0x467317
call fcn.0043dd41
jmp 0x467272
push 0x1000
lea ecx, [ebp + 0xc]
call fcn.004441e6
cmp dword [ebp - 0x14], ebx
jl 0x467622
push 0x3b60
lea ecx, [ebp + 0x30]
call fcn.0044404a
mov edi, dword [ebp + 0x30]
push 0x3960
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.004aa0a0
push dword [ebp - 0x84]
push edi
push esi
call fcn.00451c53
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x14]
cmp dword [eax], ecx
je 0x4675ec
inc edi
add eax, 0x220
cmp edi, 0x1a
jle 0x4675d8
jmp 0x467618
push 0x64
lea ecx, [ebp + 0xc]
call fcn.004441e6
imul edi, edi, 0x220
lea eax, [edi + esi]
movzx ecx, byte [eax + 0x10]
push ecx
push dword [eax + 4]
push str._d___c_
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x30]
call fcn.0043dd41
jmp 0x467648
cmp byte [ebp - 0x25], 0
jne 0x467648
cmp byte [ebp + 0x66], 4
mov eax, 0x4bdf68
je 0x467638
mov eax, 0x4bdf58
push eax
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0x14]
call fcn.0045189e
add esp, 0x10
mov dword [ebp - 0x10], ebx
lea ecx, [ebp + 0x58]
call fcn.0043dd41
cmp dword [ebp - 0x64], ebx
jle 0x46766b
push dword [ebp - 0x64]
lea eax, [ebp + 0xc]
push dword [ebp - 0xb8]
call fcn.00448fcb
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call fcn.004438ac
lea ecx, [ebp + 0x68]
call fcn.00441bc6
lea ecx, [ebp + 0x6c]
call fcn.00402c9f
mov eax, 0x4d88a8
cmp eax, ebx
je 0x46769f
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0xc0]
call fcn.0043dd41
lea ecx, [ebp - 0xbc]
call fcn.0043dd41
lea ecx, [ebp - 0xcc]
call fcn.0043dd41
lea ecx, [ebp - 0x1cc]
call fcn.0043dd41
lea ecx, [ebp + 0xc]
call fcn.0043dd41
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8