Function at 0x444968
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x5f8
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp + 0x24], ecx
call fcn.0042609c
pop ecx
push 5
lea ecx, [ebp - 0x28]
call fcn.0042aed6
push 0x14
lea ecx, [ebp - 0xc0]
call fcn.0042aed6
lea ecx, [ebp - 0x94]
call fcn.0042aeb8
lea ecx, [ebp - 0x40]
call fcn.0042aeb8
lea ecx, [ebp - 0x48]
call fcn.0042aeb8
mov eax, dword [ebp + 0x78]
or esi, 0xffffffff
mov dword [ebp + 0x14], eax
push 0x2c
lea eax, [ebp - 0x40]
xor ebx, ebx
push eax
lea eax, [ebp + 0x14]
push eax
mov dword [ebp + 0x6c], 0xfffc0000
mov dword [ebp + 0x50], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
mov byte [ebp + 0x38], bl
mov byte [ebp + 0x4e], bl
call fcn.0042d669
mov eax, dword [ebp - 0x40]
mov word [eax], bx
mov eax, dword [ebp + 0x14]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x444a3b
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x14], eax
push 0x2c
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.0042d669
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x39], 0
mov byte [ebp + 0x6a], 0
mov byte [ebp - 8], 0
mov byte [ebp + 0x3a], 0
mov byte [ebp + 0x19], 0
mov byte [ebp - 5], 0
mov byte [ebp + 0x63], 0
mov byte [ebp + 0x6b], 0
mov byte [ebp + 0x2e], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x4d], 0
mov byte [ebp + 0x1b], 0
mov byte [ebp + 0x4f], 0
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x54], ebx
mov byte [ebp - 0x2c], 0
mov dword [ebp + 0x30], 0xfffff000
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], esi
je 0x4450d3
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444abe
or byte [ebp + 0x39], 1
jmp 0x445061
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444ade
or byte [ebp + 0x39], 2
jmp 0x445061
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444afe
or byte [ebp + 6], 1
jmp 0x445061
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444b1e
or byte [ebp + 6], 2
jmp 0x445061
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.0042c7e8
add esp, 0xc
test al, al
jne 0x44508d
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0042c7e8
add esp, 0xc
test al, al
jne 0x445061
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444b74
or dword [ebp + 0x54], 1
jmp 0x445061
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444b96
or dword [ebp + 0x54], 2
jmp 0x445061
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4811f8
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444bb6
or dword [ebp + 0x54], 0x10
jmp 0x445061
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444bd5
or dword [ebp + 0x54], edi
jmp 0x445061
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4811ec
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444bf5
mov byte [ebp + 0x2e], 1
jmp 0x445061
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444c14
mov byte [ebp + 0x3b], 1
jmp 0x445061
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444c34
mov byte [ebp + 0x3b], 0x21
jmp 0x445061
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444c53
mov byte [ebp + 0x4d], 1
jmp 0x445061
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444c72
mov byte [ebp + 0x1b], 1
jmp 0x445061
mov edi, dword [ebp + 0x78]
push 4
push edi
push str._mbr
call fcn.00426f79
add esp, 0xc
test al, al
je 0x444cf5
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x444ca5
cmp ax, 0x3d
je 0x444ca5
call fcn.00426083
test al, al
je 0x444cf5
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp + 0x1c], ebx
je 0x444cba
mov dword [ebp + 0x3c], 0x4811bc
jmp 0x444ce6
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
mov eax, dword [eax]
mov dword [ebp + 0x3c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00403adb
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
pop ecx
je 0x444ce6
mov word [eax], bx
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
jmp 0x445061
push 4
push edi
push str._pbr
call fcn.00426f79
add esp, 0xc
test al, al
je 0x444d57
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x444d25
cmp ax, 0x3d
je 0x444d25
call fcn.00426083
test al, al
je 0x444d57
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp + 0x3c], ebx
push eax
je 0x444d44
mov dword [ebp + 0x1c], 0x47b452
call fcn.00403adb
pop ecx
jmp 0x444ce6
add dword [ebp + 0x78], 2
call fcn.0042609c
mov eax, dword [eax]
mov dword [ebp + 0x1c], eax
jmp 0x444ccc
push 9
push edi
push str._alignend
call fcn.00426f79
add esp, 0xc
test al, al
je 0x444dde
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x444d87
cmp ax, 0x3d
je 0x444d87
call fcn.00426083
test al, al
je 0x444dde
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x444dcf
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x444ffa
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x54], ecx
call fcn.0042f2aa
cmp dword [ebp - 0x10], ebx
pop ecx
pop ecx
jg 0x444ffa
jl 0x444dcf
cmp dword [ebp - 0x14], ebx
ja 0x444ffa
mov dword [ebp - 0x14], 0xfffffffe
mov dword [ebp - 0x10], esi
jmp 0x444ffa
push 6
push edi
push str._align
call fcn.00426f79
add esp, 0xc
test al, al
je 0x444e7b
add edi, 0xc
xor eax, eax
mov ax, word [edi]
cmp ax, bx
je 0x444e12
cmp ax, 0x3d
je 0x444e12
call fcn.00426083
test al, al
je 0x444e7b
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edi
call fcn.00403adb
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x444e3a
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
jmp 0x445061
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x445061
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x54], ecx
call fcn.0042f2aa
cmp dword [ebp - 0x20], ebx
pop ecx
pop ecx
jg 0x445061
jl 0x444e2f
cmp dword [ebp - 0x24], ebx
ja 0x445061
jmp 0x444e2f
push 6
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444e9b
mov byte [ebp - 8], 1
jmp 0x445061
push 3
lea eax, [ebp + 0x78]
push eax
push 0x47d318
call fcn.0042c7e8
add esp, 0xc
test al, al
jne 0x44505d
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0042c7e8
add esp, 0xc
test al, al
jne 0x44505d
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x444ef5
or dword [ebp + 0x54], 0x20
mov byte [ebp + 0x19], 1
jmp 0x445061
push 6
push dword [ebp + 0x78]
push str._swap:
call fcn.00426f79
add esp, 0xc
test al, al
je 0x444f3c
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042dab0
test eax, eax
pop ecx
pop ecx
jl 0x444f32
cmp dword [ebp + 0x30], 1
jl 0x444f32
cmp dword [ebp + 0x30], 4
jle 0x445061
mov esi, 0x80070057
jmp 0x446bb5
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.00426f79
add esp, 0xc
test al, al
je 0x444fdb
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x64], edi
call fcn.00403adb
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0042aa31
add esp, 0x10
test al, al
je 0x444f9c
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.0042f2aa
pop ecx
pop ecx
mov eax, dword [ebp + 0x64]
cmp word [eax], 0x3a
jne 0x444fbb
add dword [ebp + 0x64], 2
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.0042f2aa
pop ecx
pop ecx
mov eax, dword [ebp + 0x64]
cmp word [eax], 0x3a
jne 0x445061
add dword [ebp + 0x64], 2
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.0042f2aa
jmp 0x44500c
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.00426f79
add esp, 0xc
test al, al
jne 0x44506d
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x445012
lea eax, [ebp + 0x78]
push eax
call fcn.00403adb
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
jmp 0x444cef
push 6
push dword [ebp + 0x78]
push str._SKIP
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44506d
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x60], 0x42
call fcn.0042dab0
mov al, byte [ebp - 0x60]
mov byte [ebp - 0x2c], al
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
add esp, 0x10
jmp 0x445061
mov byte [ebp + 0x3a], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x444a9e
cmp dword [ebp - 0x14], 0xfffffffe
jne 0x4450c8
cmp dword [ebp - 0x10], esi
jne 0x4450c8
mov eax, dword [ebp - 0x24]
cmp eax, 0xfffffff7
jne 0x4450bf
cmp dword [ebp - 0x20], esi
jne 0x4450bf
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
jmp 0x4450d3
push str.21:INDATA
lea ecx, [ebp - 0x2c]
call fcn.00434695
push dword [ebp + 0x78]
lea ecx, [ebp - 0x2c]
call fcn.0042af26
push dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x24]
call fcn.0041e8ce
lea ecx, [ebp - 0x2c]
mov esi, eax
call fcn.0042602e
jmp 0x446bb5
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x24], 0xfffffff7
jne 0x4450dd
cmp dword [ebp - 0x20], esi
jne 0x4450dd
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x14], 0xfffffff7
jne 0x4450f4
cmp dword [ebp - 0x10], esi
jne 0x4450f4
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
push 4
lea eax, [ebp + 0x78]
push eax
push str.list
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x445160
push 4
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x445128
mov byte [ebp + 0x6a], 1
jmp 0x445160
push 4
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x445145
mov byte [ebp + 0x6a], 2
jmp 0x445160
push 3
lea eax, [ebp + 0x78]
push eax
push 0x48114c
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x445160
mov byte [ebp + 0x6a], 3
push 6
push dword [ebp + 0x78]
mov byte [ebp + 0x37], 0
push 0x481144
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x445193
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
mov byte [ebp + 0x37], 1
mov dword [ebp + 0x50], 1
push 7
push dword [ebp + 0x78]
push str.hupdate
call fcn.00426f2f
add esp, 0xc
test al, al
je 0x4451c2
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
mov byte [ebp + 0x37], 0x10
mov dword [ebp + 0x50], 1
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00403adb
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x94]
call fcn.00409fd6
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x445209
mov dword [ebp + 0x28], 0x80
jmp 0x445220
cmp ax, 0x2d
jne 0x44522a
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x44522a
mov dword [ebp + 0x28], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.00403adb
pop ecx
xor eax, eax
mov dword [ebp - 0xb4], ebx
lea edi, [ebp - 0xb0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x490234
mov dword [ebp - 0x84], 0xebd0a0a2
mov word [ebp - 0x80], 0xb9e5
mov word [ebp - 0x7e], 0x4433
mov byte [ebp - 0x7c], 0x87
mov byte [ebp - 0x7b], 0xc0
mov byte [ebp - 0x7a], 0x68
mov byte [ebp - 0x79], 0xb6
mov byte [ebp - 0x78], 0xb7
mov byte [ebp - 0x77], 0x26
mov byte [ebp - 0x76], 0x99
mov byte [ebp - 0x75], 0xc7
stosd dword es:[edi], eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x44], str.MS_Basic_Data
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x4d], 0
jne 0x44539c
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042dab0
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x4452c9
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.0042aa31
add esp, 4
test al, al
jne 0x4452c9
mov ecx, edx
mov byte [ebp - 5], 1
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2b
jne 0x4452d9
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp + 0x38], al
mov dword [ebp + 0x78], ecx
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
pop ecx
mov byte [ebp + 0x2f], 1
jne 0x4452fd
add dword [ebp + 0x78], 2
mov byte [ebp + 0x2f], 0
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
cmp byte [ebp + 0x4d], 0
pop ecx
pop ecx
je 0x445332
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f567
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f2aa
add esp, 0x10
cmp byte [ebp + 0x4d], 0
mov dword [ebp - 0xa4], ebx
je 0x44536d
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x44536d
mov dword [ebp + 0x20], eax
push ebx
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp + 0x20]
push eax
call fcn.00413db8
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp - 0xa4]
add esp, 0xc
mov dword [ebp - 0x44], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x6a], 1
je 0x445376
mov dword [ebp + 0x6c], ebx
mov edi, dword [ebp - 0x94]
push 5
push edi
push str._img
mov dword [ebp + 0x78], edi
call fcn.00426f79
add esp, 0xc
test al, al
je 0x4453ff
lea ecx, [edi + 0xa]
mov edi, ecx
xor edx, edx
jmp 0x4453d0
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f567
test eax, eax
pop ecx
pop ecx
jge 0x4452a2
xor esi, esi
jmp 0x446baa
mov eax, edx
call fcn.00426083
test al, al
jne 0x4453db
cmp dx, 0x23
je 0x4453db
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
cmp dx, bx
jne 0x4453bd
sub ecx, edi
sar ecx, 1
cmp ecx, ebx
jle 0x4453f4
push ecx
push edi
lea ecx, [ebp - 0x48]
call fcn.00409fd6
mov dword [ebp + 0x6c], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
jmp 0x445439
push 2
push edi
push 0x481114
call fcn.00426f79
add esp, 0xc
test al, al
je 0x445419
add edi, 4
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x44543d
lea eax, [ebp + 0x6c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042dab0
pop ecx
mov edi, dword [ebp + 0x78]
pop ecx
mov ax, word [edi]
cmp ax, 0x23
je 0x445450
cmp ax, 0x3a
jne 0x4454e1
inc edi
inc edi
push 2
push edi
push 0x481110
mov dword [ebp + 0x78], edi
call fcn.00426f79
push 2
push edi
push 0x48110c
mov byte [ebp + 0x6b], al
call fcn.00426f79
add esp, 0x18
cmp byte [ebp + 0x6b], 0
mov byte [ebp + 0x63], al
jne 0x44548d
cmp word [edi], 0x2b
jne 0x44548d
inc edi
inc edi
mov byte [ebp + 0x4f], 1
mov dword [ebp + 0x78], edi
test al, al
jne 0x4454af
mov ax, word [edi]
cmp ax, 0x40
je 0x4454a6
cmp ax, 0x2d
je 0x4454a6
cmp ax, 0x3d
jne 0x4454af
or dword [ebp + 0x54], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x4454e1
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042dab0
test eax, eax
pop ecx
pop ecx
jle 0x4454e1
cmp dword [ebp + 0x50], ebx
mov byte [ebp + 0x4e], 1
jne 0x4454e1
mov byte [ebp + 0x6b], 1
cmp byte [ebp + 0x37], 0
je 0x4454f6
cmp dword [ebp + 0x6c], ebx
jge 0x4454f6
mov esi, 0x80070057
jmp 0x446baa
lea eax, [ebp - 0x188]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x48]
mov word [ebp - 0x188], bx
cmp word [eax], bx
je 0x445511
mov dword [ebp + 0x14], eax
push dword [ebp + 0x6c]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x188]
push 0x47ff90
push eax
call ebx
xor edi, edi
add esp, 0xc
cmp dword [ebp + 0x30], edi
mov dword [ebp + 0x64], edi
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x54], edi
jle 0x4455dc
cmp dword [ebp + 0x6c], edi
jl 0x446b9d
mov eax, dword [ebp + 0x50]
cmp dword [ebp + 0x30], eax
je 0x446b9d
cmp eax, 1
jl 0x446b9d
cmp eax, 4
jg 0x446b9d
cmp byte [ebp + 0x4d], 0
jne 0x446b9d
cmp byte [ebp + 0x39], 2
jl 0x446b9d
push 6
pop ecx
push 0x13
mov esi, 0x4810f4
lea edi, [ebp - 0x124]
rep movsd dword es:[edi], dword [esi]
pop ecx
xor eax, eax
lea edi, [ebp - 0x10c]
rep stosd dword es:[edi], eax
movsx eax, byte [ebp + 0x2e]
push eax
push dword [ebp + 0x30]
lea eax, [ebp - 0x10e]
push dword [ebp + 0x50]
push dword [ebp + 0x6c]
push 0x4810c4
push eax
call ebx
mov ecx, dword [ebp + 0x24]
add esp, 0x18
lea eax, [ebp - 0x124]
push eax
call fcn.0041e8ce
cmp byte [ebp + 0x3b], 0
mov esi, eax
mov dword [ebp - 0x54], esi
jne 0x446ea2
jmp 0x446ba2
cmp byte [ebp + 0x37], 0x10
jne 0x4455f1
test byte [ebp + 0x3b], 0x20
jne 0x446e9a
xor edi, edi
or esi, 0xffffffff
mov ebx, dword [ebp + 0x3c]
cmp ebx, edi
je 0x445895
cmp dword [ebp + 0x6c], edi
jge 0x44560d
mov eax, dword [ebp - 0x48]
cmp word [eax], di
je 0x446b9d
mov dword [ebp + 0x6c], 0x1b8
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
cmp word [ebx], di
je 0x445735
push ebx
push 0x4810c0
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x445735
push ebx
push 0x47dacc
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x445735
push ebx
push 0x4810bc
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x445674
mov dword [ebp + 0x3c], 0x48e2e0
mov dword [ebp + 0x6c], 0x190
jmp 0x445755
push ebx
push 0x4810b8
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x445698
mov dword [ebp + 0x3c], 0x48e470
mov dword [ebp + 0x6c], 0x180
jmp 0x445755
mov dword [ebp + 0x6c], edi
cmp word [ebx], 0x2a
mov dword [ebp - 4], esi
mov dword [ebp], esi
jne 0x4456c6
lea eax, [ebp - 4]
push eax
inc ebx
lea eax, [ebp + 0x3c]
inc ebx
push eax
mov dword [ebp + 0x3c], ebx
call fcn.0042f2aa
mov ebx, dword [ebp + 0x3c]
cmp word [ebx], 0x2a
pop ecx
pop ecx
jne 0x4456c6
inc ebx
inc ebx
cmp word [ebx], 0x23
jne 0x4456fe
push ebx
lea ecx, [ebp + 0x20]
call fcn.00434695
push edi
lea eax, [ebp - 0x6c]
push eax
push str.EXEDATA
push dword [ebp + 0x20]
push edi
call fcn.0040f8b6
add esp, 0x14
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x3c], eax
call fcn.0042602e
mov eax, dword [ebp - 0x68]
mov dword [ebp + 0x6c], eax
jmp 0x445712
lea eax, [ebp + 0x6c]
push eax
push edi
push ebx
call fcn.0040a185
add esp, 0xc
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0x6c], eax
cmp dword [ebp], edi
jl 0x445743
jg 0x44571e
cmp dword [ebp - 4], edi
jb 0x445743
cmp edi, dword [ebp]
jl 0x445743
jg 0x44572d
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebp - 4]
jbe 0x445743
mov eax, dword [ebp - 4]
mov dword [ebp + 0x6c], eax
jmp 0x445743
mov dword [ebp + 0x3c], 0x48e5f0
mov dword [ebp + 0x6c], 0x1b8
cmp dword [ebp + 0x6c], edi
jbe 0x4457e6
cmp dword [ebp + 0x3c], edi
je 0x4457e6
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x14]
lea ecx, [ebp + 0x64]
call fcn.00403b3c
cmp dword [ebp + 0x64], edi
je 0x4457e6
mov esi, dword [ebp + 0x6c]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi]
push eax
lea ecx, [ebp + 0x14]
call fcn.0042add7
mov ebx, dword [ebp + 0x14]
push 0
lea eax, [ebp - 0xc]
push eax
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4457c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x445880
inc esi
jmp 0x445880
push esi
push edi
push ebx
call fcn.004669c0
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je 0x4457f6
lea ecx, [ebp + 0x14]
call fcn.0042602e
lea ecx, [ebp - 0x6c]
call fcn.0042602e
xor esi, esi
inc esi
jmp 0x446ba2
mov ecx, dword [ebp + 0x6c]
mov eax, 0x1b8
cmp ecx, eax
jle 0x445804
mov ecx, eax
push ecx
push dword [ebp + 0x3c]
push edi
call fcn.004669c0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x6c]
add esp, 0xc
cmp eax, 0x200
jbe 0x445847
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x3c]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.004669c0
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x20], 1
call fcn.0042b0dd
add esp, 0xc
test eax, eax
jne 0x445876
push eax
lea eax, [ebp - 0xc]
push eax
push esi
push edi
mov edi, dword [ebp + 0x64]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x20], eax
call fcn.00428c99
xor eax, eax
cmp dword [ebp + 0x20], eax
sete al
mov esi, eax
lea ecx, [ebp + 0x14]
call fcn.0042602e
lea ecx, [ebp - 0x6c]
call fcn.0042602e
jmp 0x446ba2
mov ebx, dword [ebp + 0x1c]
cmp ebx, edi
je 0x445bce
cmp dword [ebp + 0x50], edi
jle 0x446b9d
cmp dword [ebp + 0x6c], edi
jge 0x4458ba
mov eax, dword [ebp - 0x48]
cmp word [eax], di
je 0x446b9d
push dword [ebp - 0x2c]
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0x54]
lea eax, [ebp - 0x28]
push dword [ebp + 0x50]
mov dword [ebp - 0x1c], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x18], edi
push eax
mov dword [ebp + 0x20], esi
call fcn.0043872d
add esp, 0x1c
cmp dword [ebp + 0x20], edi
jle 0x4457ee
mov dword [ebp + 0x40], 0x200
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], edi
cmp word [ebx], di
je 0x445a4d
push ebx
push 0x4810c0
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x445a4d
push ebx
push 0x47dacc
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x445a4d
push ebx
push 0x4810b8
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x445947
push 8
jmp 0x445a4f
push ebx
push str.nt6fat
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x445a49
push ebx
push str.winfat
call fcn.00426fa9
test al, al
pop ecx
pop ecx
jne 0x445a49
push ebx
push 0x4810bc
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x445989
push 6
jmp 0x445a4f
push ebx
push str.nt5fat
call fcn.00426fa9
test al, al
pop ecx
pop ecx
je 0x4459a1
push 5
jmp 0x445a4f
mov dword [ebp + 0x40], edi
cmp word [ebx], 0x2a
mov dword [ebp - 4], esi
mov dword [ebp], esi
jne 0x4459cf
lea eax, [ebp - 4]
push eax
inc ebx
lea eax, [ebp + 0x1c]
inc ebx
push eax
mov dword [ebp + 0x1c], ebx
call fcn.0042f2aa
mov ebx, dword [ebp + 0x1c]
cmp word [ebx], 0x2a
pop ecx
pop ecx
jne 0x4459cf
inc ebx
inc ebx
cmp word [ebx], 0x23
jne 0x445a07
push ebx
lea ecx, [ebp + 0x20]
call fcn.00434695
push edi
lea eax, [ebp - 0x3c]
push eax
push str.EXEDATA
push dword [ebp + 0x20]
push edi
call fcn.0040f8b6
add esp, 0x14
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x3c], eax
call fcn.0042602e
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x40], eax
jmp 0x445a1b
lea eax, [ebp + 0x40]
push eax
push edi
push ebx
call fcn.0040a185
add esp, 0xc
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp], edi
jl 0x445a3c
jg 0x445a27
cmp dword [ebp - 4], edi
jb 0x445a3c
cmp edi, dword [ebp]
jl 0x445a3c
jg 0x445a36
mov eax, dword [ebp + 0x40]
cmp eax, dword [ebp - 4]
jbe 0x445a3c
mov eax, dword [ebp - 4]
mov dword [ebp + 0x40], eax
cmp dword [ebp + 0x3c], edi
jne 0x445a72
lea ecx, [ebp - 0x3c]
jmp 0x4457e9
push 7
jmp 0x445a4f
push 9
pop eax
push edi
lea ecx, [ebp - 0x3c]
push ecx
push str.INDATA
push eax
push edi
call fcn.0040f8b6
add esp, 0x14
cmp dword [ebp + 0x40], edi
mov dword [ebp + 0x3c], eax
je 0x445a41
mov eax, dword [ebp - 0x38]
mov dword [ebp + 0x40], eax
cmp dword [ebp + 0x40], edi
jbe 0x445a41
cmp dword [ebp + 0x3c], edi
je 0x445a41
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x14]
lea ecx, [ebp + 0x64]
call fcn.00403b3c
cmp dword [ebp + 0x64], edi
je 0x445a41
push edi
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp + 0x64]
call fcn.00426f04
add esp, 0x10
cmp eax, dword [ebp - 0x1c]
jne 0x445a41
cmp edx, dword [ebp - 0x18]
jne 0x445a41
mov esi, dword [ebp + 0x40]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi]
push eax
lea ecx, [ebp + 0x30]
call fcn.0042add7
mov ebx, dword [ebp + 0x30]
push 0
lea eax, [ebp - 0xc]
push eax
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x445b13
push esi
push edi
push ebx
call fcn.004669c0
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp + 0x64]
call fcn.00426f04
add esp, 0x1c
cmp eax, dword [ebp - 0x1c]
jne 0x445b13
cmp edx, dword [ebp - 0x18]
je 0x445b20
lea ecx, [ebp + 0x30]
call fcn.0042602e
jmp 0x445a41
mov ebx, dword [ebp + 0x40]
push 3
push dword [ebp + 0x3c]
push edi
call fcn.004669c0
mov eax, 0x1fe
add esp, 0xc
cmp ebx, eax
jle 0x445b3c
mov ebx, eax
mov eax, dword [ebp + 0x3c]
add ebx, 0xffffffe2
add eax, 0x1e
push ebx
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.004669c0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x40]
add esp, 0xc
cmp eax, 0x200
jbe 0x445b89
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x3c]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.004669c0
add esp, 0xc
push esi
push edi
push dword [ebp + 0x30]
xor ebx, ebx
inc ebx
call fcn.0042b0dd
add esp, 0xc
test eax, eax
jne 0x445bb5
push eax
lea eax, [ebp - 0xc]
push eax
push esi
push edi
mov edi, dword [ebp + 0x64]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, eax
call fcn.00428c99
xor eax, eax
test ebx, ebx
sete al
lea ecx, [ebp + 0x30]
mov esi, eax
call fcn.0042602e
lea ecx, [ebp - 0x3c]
jmp 0x44588b
cmp byte [ebp + 0x6a], 1
jne 0x445be8
mov eax, dword [ebp + 4]
or eax, dword [ebp + 0x6c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004383ed
pop ecx
pop ecx
jmp 0x445c33
cmp byte [ebp + 0x6a], 2
jne 0x445bf8
push dword [ebp - 0x2c]
push edi
push edi
push dword [ebp + 0x54]
jmp 0x445c21
cmp byte [ebp + 0x6a], 3
jne 0x445c48
mov eax, dword [ebp - 0x94]
mov ax, word [eax]
cmp ax, di
mov ecx, dword [ebp - 0x28]
mov word [ecx], ax
je 0x445c33
push dword [ebp - 0x2c]
mov eax, dword [ebp + 0x54]
push edi
and eax, 0xfffffffd
push edi
or eax, 0xc
push eax
push dword [ebp + 0x50]
lea eax, [ebp - 0x28]
push dword [ebp + 0x6c]
push eax
call fcn.0043872d
add esp, 0x1c
push dword [ebp - 0x28]
mov ecx, dword [ebp + 0x24]
push dword [ebp - 0x40]
call fcn.00429dbf
xor esi, esi
jmp 0x446ba2
cmp byte [ebp + 0x63], 0
je 0x445c67
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x50], 5
cmp byte [ebp + 0x6b], 0
je 0x445c74
mov dword [ebp + 0x50], 5
cmp byte [ebp + 0x3a], 0
je 0x445c8c
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], edi
dec dword [ebp + 0x50]
cmp byte [ebp + 0x4d], 0
mov dword [ebp - 4], esi
mov dword [ebp], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov byte [ebp - 6], 0
mov byte [ebp - 7], 0
mov dword [ebp - 0x88], edi
mov byte [ebp + 0x13], 0
mov byte [ebp + 0x1a], 0
mov dword [ebp - 0x60], edi
jne 0x445cd3
cmp dword [ebp + 0x40], edi
jne 0x445cd3
mov eax, dword [ebp + 0x58]
or eax, dword [ebp + 0x5c]
jne 0x445cd3
mov eax, dword [ebp + 0x44]
or eax, dword [ebp + 0x48]
jne 0x445cd3
mov byte [ebp + 0x3a], 1
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x14]
lea ecx, [ebp + 0x64]
call fcn.00403b3c
push 1
push edi
push dword [ebp + 0x64]
call fcn.0042f22d
add esp, 0xc
cmp byte [ebp + 0x37], 0x10
mov dword [ebp - 0xa0], eax
je 0x446e9a
cmp byte [ebp + 0x37], 1
jne 0x445d28
mov eax, dword [ebp + 0x64]
call fcn.00428cab
mov esi, eax
jmp 0x446ba2
cmp dword [ebp + 0x40], 0xff
jg 0x446b9d
mov esi, dword [ebp + 0x50]
xor ebx, ebx
cmp byte [ebp + 0x6b], bl
jne 0x445d86
cmp esi, ebx
jge 0x445d86
cmp dword [ebp + 0x5c], ebx
jg 0x446b9d
jl 0x445d57
cmp dword [ebp + 0x58], ebx
jae 0x446b9d
cmp dword [ebp + 0x48], ebx
jg 0x446b9d
jl 0x445d6b
cmp dword [ebp + 0x44], ebx
jae 0x446b9d
cmp dword [ebp + 0x40], ebx
jge 0x446b9d
or eax, 0xffffffff
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], eax
cmp byte [ebp + 0x6b], 0
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x24], esi
jne 0x445dbc
cmp byte [ebp + 0x63], 0
jne 0x445dbc
cmp esi, 4
jl 0x446145
cmp byte [ebp + 0x4d], 0
jne 0x446142
cmp byte [ebp + 0x6b], 0
je 0x445dd2
push 4
pop esi
mov dword [ebp + 0x50], esi
cmp dword [ebp + 0x40], 5
je 0x446b9d
cmp dword [ebp + 0x40], 0xf
je 0x446b9d
cmp dword [ebp + 0x40], 0x85
je 0x446b9d
push 0x100000
lea ecx, [ebp + 0x6c]
mov dword [ebp + 0x30], ebx
call fcn.0042add7
lea eax, [ebp + 0x30]
push eax
push dword [ebp + 0x6c]
push dword [ebp + 0x64]
call fcn.00428b20
add esp, 0xc
cmp dword [ebp + 0x30], esi
jg 0x445e27
cmp esi, 4
jl 0x445e27
lea ecx, [ebp + 0x6c]
jmp 0x446b98
cmp byte [ebp + 0x6b], 0
lea ebx, [eax + 0x30]
jne 0x445e3a
cmp byte [ebp + 0x63], 0
mov byte [ebp + 0x6a], 0
je 0x445e3e
mov byte [ebp + 0x6a], 1
mov ecx, dword [ebp + 0x50]
push 4
lea esi, [ecx + 1]
pop edi
cmp esi, edi
lea eax, [esi - 1]
jle 0x445e55
lea eax, [esi*4 - 0x10]
cmp byte [ebp + 0x63], 0
mov dword [ebp + 4], eax
je 0x445e69
mov eax, dword [ebp + 0x30]
add eax, 0xfffffff8
mov dword [ebp + 4], eax
jmp 0x445e8f
cmp byte [ebp + 0x6b], 0
je 0x445e8f
xor edx, edx
cmp dword [ebp + 0x40], edx
jl 0x445e1f
mov eax, dword [ebp + 0x30]
add eax, 0xfffffffc
cmp word [ebp + 0x28], dx
mov dword [ebp + 4], eax
mov dword [ebp + 0x28], 0x80
jg 0x445e8f
mov dword [ebp + 0x28], edx
cmp byte [ebp + 0x6a], 0
jne 0x445eb8
cmp esi, edi
jg 0x445e9c
dec esi
jmp 0x445ea3
lea esi, [esi*4 - 0x10]
test esi, esi
jle 0x445e1f
cmp esi, dword [ebp + 0x30]
jl 0x445eb8
cmp ecx, edi
jg 0x445e1f
add eax, 0xfffffffc
cdq
idiv edi
lea edi, [ebx + 0x20]
lea esi, [eax + eax*8]
shl esi, 6
or eax, 0xffffffff
add esi, ebx
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x24], eax
xor edx, edx
mov cl, byte [edi]
cmp cl, 5
je 0x445ee0
cmp cl, 0xf
jne 0x445ee2
mov eax, edx
inc edx
add edi, 0x90
cmp edx, 4
jl 0x445ed4
test eax, eax
jl 0x445e1f
lea eax, [eax + eax*8]
shl eax, 4
add eax, ebx
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x9c], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x98], ecx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x445f29
cmp cl, 0xf
jne 0x445f2f
mov ecx, dword [ebp - 0x2c]
mov dword [ebp + 0x3c], ecx
inc dword [ebp - 0x2c]
add eax, 0x90
cmp dword [ebp - 0x2c], 4
jl 0x445f1d
cmp byte [ebp + 0x6a], 0
je 0x445f49
and dword [ebp + 0x24], 0
jmp 0x445f72
xor ecx, ecx
add esi, 0x260
mov al, byte [esi]
test al, al
jne 0x445f5b
test ecx, ecx
jne 0x445f66
cmp al, 5
je 0x445f66
cmp al, 0xf
je 0x445f66
mov dword [ebp + 0x24], ecx
inc ecx
add esi, 0x90
cmp ecx, 4
jl 0x445f51
mov esi, dword [ebp + 0x3c]
test esi, esi
jl 0x445e1f
cmp byte [ebp + 0x6a], 0
jne 0x445f8d
cmp dword [ebp + 0x24], 0
jl 0x445e1f
cmp byte [ebp + 0x63], 0
mov eax, dword [ebp + 4]
lea ecx, [esi + eax - 4]
je 0x445fe5
xor eax, eax
mov byte [ebp - 0xb4], 0
lea edi, [ebp - 0xb3]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xb4]
push eax
lea eax, [ecx + ecx*8]
shl eax, 4
push dword [eax + ebx + 0xc]
push dword [eax + ebx + 8]
push dword [ebp + 0x64]
call fcn.0042f49f
add esp, 0x10
cmp byte [ebp + 0x2e], 0
je 0x445fdd
mov eax, dword [ebp + 0x64]
call fcn.00428cab
lea ecx, [ebp + 0x6c]
jmp 0x446575
lea eax, [ecx + ecx*8]
shl eax, 4
add eax, ebx
cmp byte [ebp + 0x6b], 0
je 0x4460a6
mov esi, dword [eax + 8]
mov ecx, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
add ecx, esi
mov dword [ebp - 0x68], esi
mov esi, dword [eax + 0x14]
adc esi, ebx
sub edx, ecx
sbb edi, esi
add edx, dword [ebp - 0x9c]
mov dword [ebp - 0x64], ebx
adc edi, dword [ebp - 0x98]
cmp byte [ebp + 0x38], 0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], esi
je 0x44602f
add dword [ebp + 0x58], ecx
adc dword [ebp + 0x5c], esi
mov ebx, ecx
add ebx, 0x200
mov eax, esi
adc eax, 0
cmp dword [ebp + 0x5c], eax
jg 0x44604e
jl 0x446048
cmp dword [ebp + 0x58], ebx
ja 0x44604e
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], eax
sub edx, dword [ebp + 0x58]
sbb edi, dword [ebp + 0x5c]
add edx, ecx
adc edi, esi
cmp dword [ebp + 0x48], edi
jl 0x44606a
jg 0x446064
cmp dword [ebp + 0x44], edx
jbe 0x44606a
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x48], edi
cmp dword [ebp + 0x48], 0
jg 0x446080
jl 0x445e1f
cmp dword [ebp + 0x44], 0
jb 0x445e1f
mov eax, dword [ebp + 0x30]
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x44608f
inc eax
jmp 0x446097
cdq
push 4
pop edi
idiv edi
add eax, edi
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
jmp 0x446135
mov ebx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov edi, 0x200
mov ecx, ebx
add ecx, edi
mov dword [ebp - 0x2c], edx
adc edx, 0
sub esi, edi
sbb eax, 0
cmp byte [ebp + 0x38], 0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
je 0x4460d8
add dword [ebp + 0x58], ecx
adc dword [ebp + 0x5c], edx
cmp dword [ebp + 0x5c], 0
jl 0x4460f8
jg 0x4460e6
cmp dword [ebp + 0x58], 0
jbe 0x4460f8
cmp dword [ebp + 0x5c], edx
jg 0x4460f8
jl 0x4460f2
cmp dword [ebp + 0x58], ecx
ja 0x4460f8
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0x5c], edx
xor ecx, ecx
cmp dword [ebp + 0x48], ecx
jl 0x44612c
jg 0x446106
cmp dword [ebp + 0x44], ecx
jbe 0x44612c
cmp dword [ebp + 0x48], eax
jl 0x446118
jg 0x446112
cmp dword [ebp + 0x44], esi
jbe 0x446118
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], eax
cmp dword [ebp + 0x48], ecx
jg 0x44612c
jl 0x445e1f
cmp dword [ebp + 0x44], ecx
jb 0x445e1f
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], eax
lea ecx, [ebp + 0x6c]
call fcn.0042602e
mov esi, dword [ebp + 0x50]
xor ebx, ebx
cmp esi, 4
setge byte [ebp + 0x38]
cmp byte [ebp + 0x39], 0
jne 0x44615e
cmp byte [ebp + 0x4e], 0
je 0x44616c
cmp esi, 1
jle 0x446b9d
cmp byte [ebp + 0x4e], 0
je 0x44616c
cmp esi, ebx
jl 0x446b9d
push dword [ebp + 0x64]
call fcn.004287a9
mov esi, eax
lea ecx, [ebp + 0x54]
mov dword [ebp + 4], esi
mov dword [esp], 0x100000
call fcn.0042add7
mov edi, dword [ebp + 0x54]
lea eax, [ebp - 0x2c]
push eax
push edi
push dword [ebp + 0x64]
mov dword [ebp - 0xc], ebx
call fcn.00428b20
mov ecx, dword [ebp - 0x48]
mov dx, word [ecx]
add esp, 0xc
cmp dx, bx
jne 0x4461b2
cmp eax, ebx
jne 0x4461b6
jmp 0x446b95
cmp eax, ebx
je 0x4461ba
mov ecx, dword [eax]
jmp 0x4461bc
xor ecx, ecx
cmp ecx, 1
sete bl
test bl, bl
je 0x4461d2
cmp byte [ebp + 0x4d], 0
je 0x446b95
jmp 0x4461dc
cmp byte [ebp + 0x4d], 0
jne 0x446b95
lea ecx, [edi + esi]
mov dword [ebp - 0x2c], ecx
add ecx, esi
test bl, bl
mov dword [ebp + 0x6c], ecx
je 0x446589
cmp byte [ebp + 0x3a], 0
je 0x4461f9
mov byte [ebp + 0x4f], 0
mov ebx, dword [eax + 0x28]
xor edi, edi
push edi
push esi
push dword [ebp + 0x5c]
mov dword [ebp + 0x28], ebx
push dword [ebp + 0x58]
call fcn.00467640
push edi
push esi
push dword [ebp + 0x48]
mov dword [ebp + 0x58], eax
push dword [ebp + 0x44]
mov dword [ebp + 0x5c], edx
call fcn.00467640
cmp byte [ebp + 0x2f], 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
je 0x44623f
add eax, dword [ebp + 0x58]
adc edx, dword [ebp + 0x5c]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
push esi
push ebx
push dword [ebp + 0x54]
lea eax, [ebp + 0x64]
push eax
call fcn.0042f13c
add esp, 0x10
cmp byte [ebp + 0x1b], 0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
je 0x446266
cmp dword [ebp + 0x50], 0
jl 0x446436
cmp byte [ebp + 0x6b], 0
mov ebx, 0x80
je 0x4462b6
or dword [ebp + 0x50], 0xffffffff
xor esi, esi
cmp dword [ebp + 0x28], esi
mov byte [ebp + 0x4f], 0
jbe 0x4462b6
mov edi, dword [ebp + 0x6c]
push 0x10
push 0x47e5b8
push edi
call fcn.00426123
add esp, 0xc
test eax, eax
je 0x4462a1
inc esi
add edi, ebx
cmp esi, dword [ebp + 0x28]
jb 0x446283
jmp 0x4462b6
mov dword [ebp + 0x50], esi
push ebx
shl esi, 7
add esi, dword [ebp + 0x6c]
push 0
push esi
call fcn.00466780
add esp, 0xc
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x50], eax
jae 0x446b95
cmp byte [ebp + 0x4f], 0
je 0x4463b3
xor ecx, ecx
test eax, eax
jbe 0x446317
mov eax, dword [ebp + 0x6c]
add eax, 0x20
mov edx, dword [eax]
cmp edx, dword [ebp + 0x58]
jne 0x4462e7
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x5c]
je 0x4462f1
inc ecx
add eax, ebx
cmp ecx, dword [ebp + 0x28]
jb 0x4462d8
jmp 0x446317
mov edx, dword [ebp + 0x6c]
mov eax, ecx
shl eax, 7
add eax, edx
cmp ecx, dword [ebp + 0x50]
mov esi, 0x47e5b8
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 0x446317
push ebx
push 0
push eax
call fcn.00466780
add esp, 0xc
mov edi, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x6c]
mov eax, edi
shl eax, 7
push 0x10
add eax, ecx
push 0x47e5b8
push eax
mov dword [ebp - 0x88], eax
call fcn.00426123
add esp, 0xc
test eax, eax
je 0x4463a2
inc edi
cmp edi, dword [ebp + 0x28]
mov dword [ebp + 0x40], edi
jae 0x446b95
mov esi, edi
shl esi, 7
add esi, dword [ebp + 0x6c]
push 0x10
push 0x47e5b8
push esi
call fcn.00426123
add esp, 0xc
test eax, eax
je 0x446374
inc edi
add esi, ebx
cmp edi, dword [ebp + 0x28]
mov dword [ebp + 0x40], edi
jb 0x446353
jmp 0x446396
cmp edi, dword [ebp + 0x50]
jle 0x446396
mov eax, dword [ebp + 0x40]
mov edi, eax
shl edi, 7
add edi, dword [ebp + 0x6c]
sub eax, dword [ebp + 0x50]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x446387
mov eax, dword [ebp + 0x40]
cmp eax, dword [ebp + 0x28]
jae 0x446b95
push ebx
push 0
push dword [ebp - 0x88]
call fcn.00466780
add esp, 0xc
mov ebx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x6c]
shl ebx, 7
add ebx, eax
lea esi, [ebp - 0x84]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x58]
movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x10]
lea esi, [ebp - 0xb4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x50]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x44]
cmp word [eax], 0
je 0x446420
push 0x48
lea esi, [ebx + 0x38]
push 0
push esi
call fcn.00466780
add esp, 0xc
push 0x24
push dword [ebp - 0x44]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
cmp byte [ebp + 0x3a], 0
je 0x446436
push 0x80
push 0
push ebx
call fcn.00466780
add esp, 0xc
cmp byte [ebp + 0x1b], 0
je 0x4464f4
xor eax, eax
cmp dword [ebp + 0x28], eax
mov dword [ebp + 0x50], eax
mov dword [ebp - 0x44], eax
mov dword [ebp + 0x40], eax
jbe 0x4464f4
mov eax, dword [ebp + 0x6c]
mov dword [ebp + 0x24], eax
mov ebx, 0x80
push 0x10
push 0x47e5b8
push dword [ebp + 0x24]
call fcn.00426123
add esp, 0xc
test eax, eax
jne 0x446489
cmp dword [ebp - 0x44], eax
jne 0x4464e2
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x50], eax
mov dword [ebp - 0x44], 1
jmp 0x4464e2
cmp dword [ebp - 0x44], 0
je 0x4464e2
mov edi, dword [ebp + 0x50]
mov esi, dword [ebp + 0x24]
push 0x20
pop ecx
push ebx
shl edi, 7
add edi, dword [ebp + 0x6c]
push 0
push dword [ebp + 0x24]
rep movsd dword es:[edi], dword [esi]
call fcn.00466780
add esp, 0xc
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x40]
jge 0x4464e2
mov esi, eax
shl esi, 7
add esi, dword [ebp + 0x6c]
push 0x10
push 0x47e5b8
push esi
call fcn.00426123
add esp, 0xc
test eax, eax
je 0x4464e2
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
add esi, ebx
cmp eax, dword [ebp + 0x40]
jl 0x4464c1
inc dword [ebp + 0x40]
mov eax, dword [ebp + 0x40]
add dword [ebp + 0x24], ebx
cmp eax, dword [ebp + 0x28]
jb 0x44645f
mov ebx, dword [ebp + 0x28]
xor esi, esi
push esi
shl ebx, 7
push ebx
push dword [ebp + 0x6c]
call fcn.00433aa3
mov edi, dword [ebp - 0x2c]
mov dword [edi + 0x58], eax
mov eax, dword [edi + 0xc]
add esp, 0xc
cmp eax, 0x20000
mov dword [edi + 0x10], esi
ja 0x446b95
push esi
push eax
push edi
call fcn.00433aa3
add esp, 0xc
push esi
mov esi, dword [ebp + 4]
mov dword [edi + 0x10], eax
xor eax, eax
push eax
push esi
push dword [ebp - 0x64]
push dword [ebp - 0x68]
call fcn.00467ab0
push edx
push eax
push dword [ebp + 0x64]
call fcn.00426f04
xor edx, edx
lea eax, [ebx + esi - 1]
div esi
add esp, 0x10
lea ecx, [ebp + 0x64]
inc eax
imul eax, esi
push eax
push edi
call fcn.00425f8b
cmp byte [ebp + 0x2e], 0
je 0x446572
mov eax, dword [ebp + 0x64]
call fcn.00428cab
lea ecx, [ebp + 0x54]
call fcn.0042602e
cmp byte [ebp + 0x3b], 0
jne 0x446e9a
jmp 0x445c41
test dx, dx
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x50]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 8]
mov byte [ebp + 0x2f], 0
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x6c], eax
jne 0x44663d
xor eax, eax
xor esi, esi
mov dword [ebp - 0xbc], esi
lea edi, [ebp - 0xb8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0xc]
push eax
push 0x18
lea eax, [ebp - 0xbc]
push eax
push esi
push esi
push 0x70000
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0x4c], esi
jg 0x4465f8
jl 0x4465e9
cmp ebx, esi
ja 0x4465f8
mov eax, dword [ebp - 0xb0]
mov dword [ebp + 0x1c], eax
cdq
mov ebx, eax
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x8c], esi
jg 0x446620
jl 0x44660a
cmp dword [ebp - 0x90], esi
ja 0x446620
mov eax, dword [ebp - 0xac]
mov dword [ebp + 0x3c], eax
cdq
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edx
cmp dword [ebp + 0xc], esi
jg 0x44663d
jl 0x44662d
cmp dword [ebp + 8], 0
ja 0x44663d
mov eax, dword [ebp - 0xa8]
mov dword [ebp + 0x6c], eax
cdq
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
xor ecx, ecx
cmp dword [ebp - 0x4c], ecx
jg 0x446651
jl 0x44664a
cmp ebx, ecx
ja 0x446651
mov dword [ebp + 0x1c], 0xff
cmp dword [ebp - 0x8c], ecx
jg 0x44666a
jl 0x446663
cmp dword [ebp - 0x90], ecx
ja 0x44666a
mov dword [ebp + 0x3c], 0x3f
cmp dword [ebp + 0xc], ecx
jg 0x44667d
jl 0x446676
cmp dword [ebp + 8], ecx
ja 0x44667d
mov dword [ebp + 0x6c], 0x200
cmp byte [ebp + 0x3a], 0
jne 0x446aae
mov edi, dword [ebp + 0x5c]
cmp edi, ecx
jg 0x4466a9
jl 0x446695
cmp dword [ebp + 0x58], ecx
jae 0x4466a9
cmp dword [ebp + 0x48], ecx
jl 0x446aae
jg 0x4466a9
cmp dword [ebp + 0x44], ecx
jb 0x446aae
mov ebx, dword [ebp + 0x50]
cmp ebx, ecx
jl 0x446aae
push 0x100000
lea ecx, [ebp + 0x30]
call fcn.0042add7
mov esi, dword [ebp + 0x6c]
imul esi, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x1c]
imul eax, esi
cdq
xor ecx, ecx
cmp dword [ebp + 0x6c], ecx
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
jg 0x4466e9
lea ecx, [ebp + 0x30]
call fcn.0042602e
jmp 0x446b95
mov eax, dword [ebp - 0x48]
cmp word [eax], cx
jne 0x446723
lea eax, [ebp + 0x20]
push eax
push dword [ebp + 0x30]
mov dword [ebp + 0x20], ecx
push dword [ebp + 0x64]
call fcn.00428b20
add esp, 0xc
test eax, eax
jne 0x446717
lea ecx, [ebp + 0x30]
call fcn.0042602e
jmp 0x446e61
cmp ebx, 4
jl 0x446721
cmp ebx, dword [ebp + 0x20]
jg 0x4466dc
xor ecx, ecx
xor eax, eax
xor edx, edx
cmp edi, ecx
jl 0x4467c3
jg 0x44673a
cmp dword [ebp + 0x58], ecx
jbe 0x4467c3
mov ecx, dword [ebp - 0x24]
and ecx, dword [ebp - 0x20]
cmp ecx, 0xffffffff
jne 0x44677d
cmp edi, dword [ebp + 0xc]
jl 0x446762
jg 0x446754
mov eax, dword [ebp + 0x58]
cmp eax, dword [ebp + 8]
jb 0x446762
cmp byte [ebp + 0x38], 0
jne 0x446762
push dword [ebp + 0xc]
push dword [ebp + 8]
jmp 0x446767
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x58]
call fcn.00428bf5
add esp, 0x10
add dword [ebp + 0x58], eax
adc edi, edx
mov dword [ebp + 0x5c], edi
jmp 0x4467c1
cmp byte [ebp + 0x19], 0
jne 0x4467c1
mov eax, dword [ebp + 0x6c]
cdq
mov esi, eax
add eax, dword [ebp - 0x24]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp - 0x20]
push edi
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
call fcn.00467640
push edi
push esi
push edx
push eax
call fcn.00467ab0
push edx
push eax
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.00428bf5
add esp, 0x10
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
xor ecx, ecx
cmp dword [ebp + 0x48], ecx
jl 0x4467ed
jg 0x4467cf
cmp dword [ebp + 0x44], ecx
jbe 0x4467ed
cmp byte [ebp - 5], 0
jne 0x4467ed
sub dword [ebp + 0x44], eax
sbb dword [ebp + 0x48], edx
cmp dword [ebp + 0x48], ecx
jg 0x4467ed
jl 0x4467e7
cmp dword [ebp + 0x44], ecx
jae 0x4467ed
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x48], ecx
cmp dword [ebp + 0x5c], ecx
jl 0x446801
jg 0x4467f9
cmp dword [ebp + 0x58], ecx
jbe 0x446801
mov esi, dword [ebp + 0x58]
mov edi, dword [ebp + 0x5c]
jmp 0x446805
xor esi, esi
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x48], ebx
jl 0x446881
jg 0x446813
cmp dword [ebp + 0x44], ebx
jbe 0x446881
mov eax, dword [ebp - 0x14]
and eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
jne 0x446839
push dword [ebp + 0xc]
add esi, dword [ebp + 0x44]
push dword [ebp + 8]
adc edi, dword [ebp + 0x48]
push edi
push esi
call fcn.00468b90
sub dword [ebp + 0x44], eax
sbb dword [ebp + 0x48], edx
jmp 0x446881
cmp byte [ebp + 0x19], 0
jne 0x446881
mov eax, dword [ebp + 0x6c]
cdq
mov ebx, eax
add eax, dword [ebp - 0x14]
mov ecx, edx
adc ecx, dword [ebp - 0x10]
push edx
sub eax, 1
push ebx
sbb ecx, 0
push ecx
push eax
mov dword [ebp + 0xc], edx
call fcn.00467640
push dword [ebp + 0xc]
push ebx
push edx
push eax
call fcn.00467ab0
add esi, dword [ebp + 0x44]
push edx
adc edi, dword [ebp + 0x48]
push eax
push edi
push esi
call fcn.00468b90
sub dword [ebp + 0x44], eax
sbb dword [ebp + 0x48], edx
xor ebx, ebx
cmp byte [ebp + 0x6b], 0
mov byte [ebp + 0x63], 0
mov byte [ebp + 0x4f], 0
mov byte [ebp + 0x4e], 0
je 0x4469ca
cmp dword [ebp + 0x48], ebx
jl 0x4466dc
jg 0x4468ab
cmp dword [ebp + 0x44], ebx
jb 0x4466dc
cmp dword [ebp + 0x5c], ebx
jl 0x4466dc
jg 0x4468bf
cmp dword [ebp + 0x58], ebx
jbe 0x4466dc
mov eax, dword [ebp + 0x6c]
cdq
push edx
push eax
push dword [ebp - 0x18]
mov dword [ebp + 8], eax
push dword [ebp - 0x1c]
mov dword [ebp + 0xc], edx
call fcn.00467640
mov ecx, dword [ebp + 0x48]
push dword [ebp + 0xc]
mov esi, eax
mov eax, dword [ebp + 0x44]
sub eax, dword [ebp - 0x1c]
push dword [ebp + 8]
sbb ecx, dword [ebp - 0x18]
add eax, dword [ebp + 0x58]
mov dword [ebp - 0x34], edx
adc ecx, dword [ebp + 0x5c]
push ecx
push eax
call fcn.00467640
and dword [ebp - 0x84], 0
mov dword [ebp - 0x50], eax
xor eax, eax
push 1
push dword [ebp + 0x1c]
lea edi, [ebp - 0x80]
push dword [ebp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp + 0x4e]
push eax
lea eax, [ebp + 0x4f]
push eax
lea eax, [ebp + 0x63]
push eax
push dword [ebp - 0x34]
mov ebx, edx
push esi
call fcn.00428c1f
mov al, byte [ebp + 0x4f]
mov edi, dword [ebp - 0x50]
mov byte [ebp - 0x83], al
mov al, byte [ebp + 0x4e]
push 1
push dword [ebp + 0x1c]
mov byte [ebp - 0x82], al
mov al, byte [ebp + 0x63]
push dword [ebp + 0x3c]
mov byte [ebp - 0x81], al
lea eax, [ebp + 0x4e]
push eax
lea eax, [ebp + 0x4f]
push eax
lea eax, [ebp + 0x63]
push eax
mov eax, edi
add eax, esi
adc ebx, dword [ebp - 0x34]
add eax, 0xffffffff
adc ebx, 0xffffffff
push ebx
push eax
mov byte [ebp - 0x84], 0
call fcn.00428c1f
mov al, byte [ebp + 0x4f]
add esp, 0x40
push dword [ebp + 0xc]
mov byte [ebp - 0x7f], al
push dword [ebp + 8]
mov al, byte [ebp + 0x4e]
push dword [ebp - 0x98]
mov byte [ebp - 0x7e], al
mov al, byte [ebp + 0x63]
push dword [ebp - 0x9c]
mov byte [ebp - 0x80], 5
mov byte [ebp - 0x7d], al
call fcn.00467640
sub esi, eax
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x64]
mov dword [ebp - 0x7c], esi
push dword [ebp - 0x68]
mov dword [ebp - 0x78], edi
push dword [ebp + 0x64]
call fcn.0042f49f
add esp, 0x10
xor ebx, ebx
mov eax, dword [ebp + 0x6c]
cdq
mov edi, edx
push edi
mov esi, eax
push esi
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.00467640
cmp dword [ebp + 0x5c], ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
jl 0x446a07
jg 0x4469f1
cmp dword [ebp + 0x58], ebx
jb 0x446a07
push edi
push esi
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.00467640
mov ebx, eax
mov dword [ebp], edx
xor eax, eax
jmp 0x446a0e
xor eax, eax
xor ebx, ebx
mov dword [ebp], eax
cmp dword [ebp + 0x48], eax
jl 0x446a2c
jg 0x446a1a
cmp dword [ebp + 0x44], eax
jb 0x446a2c
push edi
push esi
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.00467640
mov dword [ebp - 0x70], edx
jmp 0x446a2f
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], eax
xor eax, eax
cmp dword [ebp + 0x50], 4
mov esi, dword [ebp]
setge al
push eax
push dword [ebp + 0x1c]
lea eax, [ebp - 6]
push dword [ebp + 0x3c]
push eax
lea eax, [ebp - 7]
push eax
lea eax, [ebp - 0x88]
push eax
push esi
push ebx
call fcn.00428c1f
xor eax, eax
add esp, 0x20
cmp dword [ebp + 0x5c], eax
jl 0x446a75
jg 0x446a6c
cmp dword [ebp + 0x58], eax
jbe 0x446a75
sub ebx, dword [ebp - 0x38]
sbb esi, dword [ebp - 0x34]
mov dword [ebp], esi
mov cl, byte [ebp + 0x38]
mov byte [ebp + 0x2f], cl
movsx ecx, cl
push ecx
push dword [ebp + 0x1c]
lea ecx, [ebp + 0x13]
push dword [ebp + 0x3c]
push ecx
lea ecx, [ebp + 0x1a]
push ecx
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x74]
lea ecx, [ebx + ecx - 1]
push eax
push ecx
call fcn.00428c1f
add esp, 0x20
lea ecx, [ebp + 0x30]
call fcn.0042602e
xor ecx, ecx
jmp 0x446ab1
mov ebx, dword [ebp - 4]
mov eax, dword [ebp + 0x24]
push ecx
push dword [ebp - 0x58]
shl eax, 4
push dword [ebp - 0x5c]
lea esi, [ebp + eax - 0x1ca]
push dword [ebp + 0x64]
call fcn.00426f04
add esp, 0x10
cmp eax, dword [ebp - 0x5c]
jne 0x446e61
cmp edx, dword [ebp - 0x58]
jne 0x446e61
push 0
lea eax, [ebp - 0xc]
push eax
mov edi, 0x200
push edi
lea eax, [ebp - 0x388]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x446e61
push edi
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0x588]
push eax
call fcn.004669c0
mov al, byte [esi + 4]
add esp, 0xc
cmp byte [ebp + 0x6b], 0
jne 0x446b38
cmp byte [ebp + 0x39], 2
jge 0x446b38
cmp al, 5
je 0x446b95
cmp al, 0xf
je 0x446b95
cmp al, 0x85
je 0x446b95
cmp byte [ebp + 0x6b], 0
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0xc]
jne 0x446bef
test al, al
je 0x446bef
xor eax, eax
cmp dword [ebp + 0x40], eax
je 0x446bf1
cmp byte [ebp + 0x38], al
jne 0x446bf1
cmp dword [ebp + 0x5c], eax
jl 0x446b79
jg 0x446b70
cmp dword [ebp + 0x58], eax
jb 0x446b79
cmp ebx, edi
jne 0x446b95
cmp dword [ebp], eax
jne 0x446b95
cmp dword [ebp + 0x48], eax
jl 0x446bf1
jg 0x446b85
cmp dword [ebp + 0x44], eax
jb 0x446bf1
cmp dword [ebp - 0x74], ecx
jne 0x446b8f
cmp dword [ebp - 0x70], eax
je 0x446bef
xor eax, eax
cmp ecx, eax
je 0x446bf1
lea ecx, [ebp + 0x54]
call fcn.0042602e
mov esi, 0x80070057
lea ecx, [ebp + 0x64]
call fcn.004029f8
push 0x490234
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x48]
call fcn.0042602e
lea ecx, [ebp - 0x40]
call fcn.0042602e
lea ecx, [ebp - 0x94]
call fcn.0042602e
lea ecx, [ebp - 0xc0]
call fcn.0042602e
lea ecx, [ebp - 0x28]
call fcn.0042602e
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
xor eax, eax
cmp byte [ebp + 0x3a], 0
je 0x446c06
xor ecx, ecx
xor edi, edi
xor ebx, ebx
mov dword [ebp], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov edx, dword [ebp + 0x40]
cmp edx, eax
jl 0x446c10
mov byte [esi + 4], dl
mov edx, dword [ebp + 0x28]
cmp dx, ax
jl 0x446c1a
mov byte [esi], dl
cmp dword [ebp + 0x5c], eax
jg 0x446c3b
jl 0x446c26
cmp dword [ebp + 0x58], eax
jae 0x446c3b
cmp dword [ebp + 0x48], eax
jl 0x446c9f
jg 0x446c32
cmp dword [ebp + 0x44], eax
jb 0x446c9f
mov eax, dword [ebp - 0x74]
lea eax, [eax + edi - 1]
jmp 0x446c4b
cmp dword [ebp + 0x48], eax
jg 0x446c6f
jl 0x446c47
cmp dword [ebp + 0x44], eax
jae 0x446c6f
lea eax, [ebx + ecx - 1]
movsx ecx, byte [ebp + 0x2f]
push ecx
push dword [ebp + 0x1c]
lea ecx, [ebp + 0x13]
push dword [ebp + 0x3c]
push ecx
lea ecx, [ebp + 0x1a]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push 0
push eax
call fcn.00428c1f
add esp, 0x20
xor eax, eax
cmp dword [ebp + 0x5c], eax
jl 0x446c93
jg 0x446c7b
cmp dword [ebp + 0x58], eax
jb 0x446c93
mov cl, byte [ebp - 7]
mov byte [esi + 1], cl
mov cl, byte [ebp - 6]
mov byte [esi + 2], cl
mov cl, byte [ebp - 0x88]
mov byte [esi + 3], cl
mov dword [esi + 8], ebx
cmp dword [ebp + 0x48], eax
jg 0x446cab
jl 0x446c9f
cmp dword [ebp + 0x44], eax
jae 0x446cab
cmp dword [ebp + 0x5c], eax
jl 0x446cbd
jg 0x446cab
cmp dword [ebp + 0x58], eax
jb 0x446cbd
mov cl, byte [ebp + 0x1a]
mov byte [esi + 5], cl
mov cl, byte [ebp + 0x13]
mov byte [esi + 6], cl
mov cl, byte [ebp - 0x60]
mov byte [esi + 7], cl
cmp dword [ebp + 0x48], eax
jl 0x446ccf
jg 0x446cc9
cmp dword [ebp + 0x44], eax
jb 0x446ccf
mov ecx, dword [ebp - 0x74]
mov dword [esi + 0xc], ecx
cmp dword [ebp + 0x40], eax
jge 0x446cf2
cmp word [ebp + 0x28], ax
jge 0x446cf2
cmp dword [ebp + 0x5c], eax
jg 0x446cf2
jl 0x446ce6
cmp dword [ebp + 0x58], eax
jae 0x446cf2
cmp dword [ebp + 0x48], eax
jl 0x446d00
jg 0x446cf2
cmp dword [ebp + 0x44], eax
jb 0x446d00
mov byte [ebp - 0x18a], 0x55
mov byte [ebp - 0x189], 0xaa
cmp word [ebp + 0x28], ax
jge 0x446d31
cmp dword [ebp + 0x40], eax
jge 0x446d31
cmp dword [ebp + 0x5c], eax
jg 0x446d31
jl 0x446d17
cmp dword [ebp + 0x58], eax
jae 0x446d31
cmp dword [ebp + 0x48], eax
jg 0x446d31
jl 0x446d23
cmp dword [ebp + 0x44], eax
jae 0x446d31
mov byte [ebp - 0x18a], 0x55
mov byte [ebp - 0x189], 0xaa
push 0
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x64]
call fcn.00426f04
add esp, 0x10
cmp eax, dword [ebp - 0x5c]
jne 0x446e61
cmp edx, dword [ebp - 0x58]
jne 0x446e61
mov edi, 0x200
push edi
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0x588]
xor ebx, ebx
push eax
inc ebx
call fcn.00426123
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
add esp, 0xc
test eax, eax
je 0x446d9f
push 0
lea eax, [ebp - 0xc]
push eax
push edi
mov edi, dword [ebp + 0x64]
lea eax, [ebp - 0x388]
push eax
push edi
call esi
mov ebx, eax
call fcn.00428c99
mov edi, 0x200
cmp dword [ebp + 0x5c], 0
jl 0x446e7e
jg 0x446db4
cmp dword [ebp + 0x58], edi
jb 0x446e7e
cmp dword [ebp + 0x48], 0
jl 0x446e7e
jg 0x446dc9
cmp dword [ebp + 0x44], edi
jbe 0x446e7e
cmp byte [ebp - 8], 0
je 0x446e7e
push edi
lea eax, [ebp - 0x388]
push 0
push eax
call fcn.00466780
mov ebx, dword [ebp + 0x58]
push 0
push dword [ebp + 0x5c]
push ebx
push dword [ebp + 0x64]
call fcn.00426f04
add esp, 0x1c
cmp eax, ebx
jne 0x446e61
cmp edx, dword [ebp + 0x5c]
jne 0x446e61
push 0
lea eax, [ebp - 0xc]
push eax
push edi
lea eax, [ebp - 0x588]
push eax
push dword [ebp + 0x64]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x446e61
cmp dword [ebp - 0xc], edi
jne 0x446e61
push edi
lea eax, [ebp - 0x388]
push eax
lea eax, [ebp - 0x588]
push eax
call fcn.00426123
add esp, 0xc
test eax, eax
jne 0x446e47
lea ecx, [ebp + 0x54]
call fcn.0042602e
jmp 0x445c41
push 0
push dword [ebp + 0x5c]
push ebx
push dword [ebp + 0x64]
call fcn.00426f04
add esp, 0x10
cmp eax, ebx
jne 0x446e61
cmp edx, dword [ebp + 0x5c]
je 0x446e69
lea ecx, [ebp + 0x54]
jmp 0x4457e9
push 0
lea eax, [ebp - 0xc]
push eax
push edi
lea eax, [ebp - 0x388]
push eax
push dword [ebp + 0x64]
call esi
mov ebx, eax
cmp byte [ebp + 0x2e], 0
je 0x446e8c
mov eax, dword [ebp + 0x64]
call fcn.00428cab
lea ecx, [ebp + 0x54]
call fcn.0042602e
cmp byte [ebp + 0x3b], 0
je 0x446edb
lea ecx, [ebp + 0x64]
call fcn.004029f8
xor eax, eax
test byte [ebp + 0x3b], 0x20
jne 0x446eb3
cmp dword [ebp - 0xa0], 0xc
je 0x446ec7
push 1
push eax
push dword [ebp + 0x14]
call fcn.0042eb07
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x37], 0x10
mov esi, eax
je 0x446ba2
mov esi, dword [ebp - 0x54]
jmp 0x446ba2
xor esi, esi
test ebx, ebx
jne 0x446ba2
jmp 0x4457f0