Function at 0x4543c8
Capabilities:
Clear file content
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x4a0
mov edx, dword [ebp + 0x78]
push ebx
xor ebx, ebx
push esi
mov dword [ebp + 4], ecx
push edi
mov byte [ebp + 0x39], bl
mov byte [ebp + 0x5d], bl
mov byte [ebp + 0x5e], bl
mov byte [ebp + 0x53], bl
xor ecx, ecx
jmp 0x454423
mov eax, ecx
call fcn.0040ac1b
test al, al
jne 0x45442b
cmp cx, 0x2a
jne 0x454406
mov al, byte [edx]
mov byte [ebp + 0x39], al
jmp 0x45441e
cmp cx, 0x2e
jne 0x454413
mov al, byte [edx]
mov byte [ebp + 0x5d], al
jmp 0x45441e
cmp cx, 0x23
jne 0x45441e
mov al, byte [edx]
mov byte [ebp + 0x5e], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x4543ee
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
push 3
lea eax, [ebp + 0x78]
push eax
push 0x48c158
call fcn.0042fc5f
add esp, 0x10
test al, al
je 0x45444f
mov byte [ebp + 0x53], 1
push 1
lea ecx, [ebp + 0x24]
call fcn.0042e1e2
mov eax, 0x200
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0x1c], eax
push 3
lea eax, [ebp + 0x78]
or edi, 0xffffffff
push eax
push 0x48c154
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], 0x7fffffff
xor esi, esi
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], edi
mov dword [ebp - 0x20], ebx
mov byte [ebp + 0x6f], bl
mov byte [ebp + 0x5f], bl
mov byte [ebp + 0x52], bl
mov byte [ebp + 0x51], bl
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x454796
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x52], 1
mov byte [ebp + 0x39], 1
jne 0x454796
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x454765
mov eax, ecx
call fcn.0040ac1b
test al, al
jne 0x454765
cmp cx, 0x2c
je 0x454765
push 4
push dword [ebp + 0x78]
push 0x48c14c
call fcn.0042996a
add esp, 0xc
test al, al
je 0x454537
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0x3c], eax
jmp 0x45474e
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0042996a
add esp, 0xc
test al, al
je 0x454573
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x54]
jmp 0x45452f
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0042996a
add esp, 0xc
test al, al
je 0x4545b5
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x54]
mov dword [ebp - 0x1c], eax
jmp 0x45474e
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0042996a
add esp, 0xc
test al, al
je 0x4545fd
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x54]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0xc], eax
jmp 0x45474e
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0042996a
add esp, 0xc
test al, al
je 0x454645
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x64], eax
jmp 0x45474e
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0042996a
add esp, 0xc
test al, al
je 0x454688
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push 0x48c11c
call fcn.0042996a
add esp, 0xc
test al, al
je 0x454679
mov byte [ebp + 0x5f], 1
lea eax, [ebp + 0x78]
push eax
call fcn.00403ff2
pop ecx
jmp 0x45474e
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0042996a
add esp, 0xc
test al, al
je 0x4546d0
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x58]
mov esi, dword [ebp + 0x54]
mov dword [ebp - 0x2c], eax
jmp 0x45474e
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0042996a
add esp, 0xc
test al, al
je 0x454716
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
xor esi, esi
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
call fcn.00432f9a
test eax, eax
pop ecx
pop ecx
jle 0x45474e
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x4c], eax
jmp 0x45474e
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x454733
mov byte [ebp + 0x51], 1
jmp 0x45474e
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x45474e
mov byte [ebp + 0x51], 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
pop ecx
je 0x4544c7
cmp dword [ebp + 0x4c], ebx
jg 0x454796
jl 0x454771
cmp dword [ebp + 0x48], ebx
jae 0x454796
push dword [ebp - 0x2c]
mov eax, dword [ebp + 0x3c]
cdq
push esi
push edx
push eax
call fcn.00471360
cmp edx, ebx
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
jg 0x454796
jl 0x454790
cmp eax, ebx
jae 0x454796
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x4547b1
mov byte [ebp + 0x51], 1
push 0x2c
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043060a
mov eax, dword [ebp + 0x24]
push eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x24], ebx
call fcn.0040dca1
add esp, 0x10
push eax
lea ecx, [ebp + 0x24]
call fcn.0043a522
lea ecx, [ebp + 0x58]
call fcn.00428a48
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2c
jne 0x4553fe
mov eax, dword [ebp + 0x24]
cmp word [eax], bx
je 0x4553fe
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00432f9a
cmp dword [ebp + 0x1c], ebx
pop ecx
pop ecx
jg 0x454823
jl 0x4553fe
cmp dword [ebp + 0x18], ebx
jb 0x4553fe
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
push 0xfffffffffffffffc
pop esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], edi
jne 0x45484b
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00432f9a
mov esi, dword [ebp + 0x2c]
pop ecx
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x454857
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x45487a
jg 0x454865
cmp dword [ebp + 0x60], ebx
jb 0x45487a
cmp dword [ebp + 0x30], eax
jl 0x45487a
jg 0x454871
cmp esi, dword [ebp + 0x60]
jbe 0x45487a
mov esi, dword [ebp + 0x60]
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
mov edi, dword [ebp + 0x78]
push edi
call fcn.0040bf86
push edi
push str.zero
call fcn.0042999a
add esp, 0x10
cmp word [edi], bx
mov byte [ebp + 0x3a], al
mov dword [ebp + 0x40], edi
jne 0x4548ad
xor esi, esi
inc esi
jmp 0x455403
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x14]
push 1
push eax
call fcn.004360da
pop ecx
pop ecx
lea ecx, [ebp - 0x18]
mov edi, eax
call fcn.0042e04e
cmp byte [ebp + 0x5e], bl
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov byte [ebp + 0x3b], bl
mov dword [ebp + 0x34], ebx
je 0x454a3e
mov edi, 0x49b604
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp - 8]
call fcn.0042e1c4
mov ecx, dword [ebp + 4]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x78]
call fcn.0040bce3
cmp eax, ebx
mov dword [ebp + 0x14], eax
jne 0x45491c
lea ecx, [ebp - 8]
call fcn.00428a48
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4553f6
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov edi, dword [ebp + 0x30]
and eax, 0x3fffffff
cmp edi, ebx
mov dword [ebp + 0x34], eax
jl 0x454956
jg 0x454937
cmp esi, ebx
jbe 0x454956
mov eax, dword [ebp + 0x34]
cdq
mov ecx, esi
add ecx, dword [ebp + 0x48]
mov dword [ebp + 0x54], eax
mov eax, edi
adc eax, dword [ebp + 0x4c]
mov dword [ebp + 0x58], edx
cmp eax, edx
jl 0x454984
jg 0x454956
cmp ecx, dword [ebp + 0x54]
jbe 0x454984
mov eax, dword [ebp + 0x34]
cdq
mov esi, eax
mov dword [ebp + 0x54], esi
sub esi, dword [ebp + 0x48]
mov edi, edx
mov dword [ebp + 0x58], edi
sbb edi, dword [ebp + 0x4c]
mov dword [ebp + 0x2c], esi
cmp edi, ebx
mov dword [ebp + 0x30], edi
jg 0x454984
jl 0x45497a
cmp esi, ebx
ja 0x454984
xor esi, esi
xor edi, edi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], edi
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x4549a6
jg 0x454992
cmp dword [ebp + 0x60], ebx
jb 0x4549a6
cmp eax, edi
jg 0x4549a6
jl 0x45499d
cmp dword [ebp + 0x60], esi
jae 0x4549a6
mov esi, dword [ebp + 0x60]
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], eax
lea eax, [esi + 0x200000]
push eax
lea ecx, [ebp - 0x18]
call fcn.0042e092
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x4549d4
lea ecx, [ebp - 8]
call fcn.00428a48
push 0x49b604
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x455459
mov edx, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 4]
add eax, 0x100000
and eax, 0xfff00000
cmp dword [ebp + 0x4c], edx
mov dword [ebp + 0x40], eax
jl 0x454a02
jg 0x4549f9
mov edi, dword [ebp + 0x48]
cmp edi, dword [ebp + 0x54]
jbe 0x454a02
mov edi, dword [ebp + 0x54]
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x4c], edx
add ecx, dword [ebp + 0x48]
cmp esi, ebx
mov dword [ebp - 0x14], esi
mov dword [ebp + 0x34], esi
jle 0x454a1e
cmp eax, ecx
je 0x454a1e
push esi
push ecx
push eax
call fcn.004708c0
add esp, 0xc
lea ecx, [ebp - 8]
mov byte [ebp + 0x3b], 1
mov byte [ebp + 0x6f], 1
call fcn.00428a48
push 0x49b604
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x454bdb
cmp edi, ebx
je 0x454bdb
mov al, byte [edi]
mov byte [ebp + 0x6f], al
mov byte [ebp + 0x3b], al
lea eax, [edi + 2]
mov dword [ebp - 0x2c], 0x20
cmp word [eax], 0x2e
mov dword [ebp + 0x34], eax
jne 0x454a72
mov cl, byte [eax]
inc eax
inc eax
mov byte [ebp + 0x6f], cl
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x2c], 0x40
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.00436028
pop ecx
pop ecx
mov cx, word [edi]
mov dword [ebp + 4], eax
mov eax, dword [0x49addc]
mov word [ebp + 0x58], cx
mov ecx, dword [ebp + 0x14]
mov word [edi], bx
cmp word [ecx], bx
mov dword [ebp - 8], ebx
je 0x454aab
push 2
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 8], eax
cmp eax, ebx
mov cx, word [ebp + 0x58]
mov word [edi], cx
je 0x454ad0
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push dword [ebp + 4]
push dword [ebp - 0x20]
push eax
call fcn.004101ba
add esp, 0x14
mov dword [ebp + 0x40], eax
cmp dword [ebp - 8], ebx
je 0x454ade
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp + 0x40], ebx
je 0x455459
cmp dword [ebp + 0x30], ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x58], eax
jl 0x454b17
jg 0x454af8
cmp esi, ebx
jbe 0x454b17
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x30]
mov edi, esi
add edi, dword [ebp + 0x48]
cdq
adc ecx, dword [ebp + 0x4c]
mov dword [ebp], eax
cmp ecx, edx
mov dword [ebp + 4], edx
jl 0x454b41
jg 0x454b17
cmp edi, eax
jbe 0x454b41
mov eax, dword [ebp - 0x14]
cdq
mov dword [ebp], eax
sub eax, dword [ebp + 0x48]
mov dword [ebp + 4], edx
sbb edx, dword [ebp + 0x4c]
mov esi, eax
cmp edx, ebx
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], edx
jg 0x454b41
jl 0x454b39
cmp esi, ebx
ja 0x454b41
xor esi, esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], ebx
mov eax, dword [ebp - 0x14]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x18]
call fcn.0042e092
mov eax, dword [ebp - 0x18]
cmp eax, ebx
mov edi, eax
je 0x455459
mov ecx, dword [ebp + 0x58]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.00470340
mov eax, dword [ebp + 4]
add esp, 0xc
cmp dword [ebp + 0x4c], eax
jl 0x454b8e
jg 0x454b85
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp]
jbe 0x454b8e
mov ecx, dword [ebp]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x64]
add edi, dword [ebp + 0x48]
cmp eax, ebx
jl 0x454bb4
jg 0x454b9f
cmp dword [ebp + 0x60], ebx
jb 0x454bb4
cmp eax, dword [ebp + 0x30]
jg 0x454bb4
jl 0x454bab
cmp dword [ebp + 0x60], esi
jae 0x454bb4
mov esi, dword [ebp + 0x60]
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], eax
lea eax, [edi + 0x100000]
and eax, 0xfff00000
cmp esi, ebx
mov dword [ebp - 0x14], esi
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x40], eax
jle 0x454bdb
cmp eax, edi
je 0x454bdb
push esi
push edi
push eax
call fcn.004708c0
add esp, 0xc
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x58], ebx
mov byte [ebp + 0x5e], bl
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x68], ebx
call fcn.00435a13
cmp al, bl
pop ecx
pop ecx
mov byte [ebp + 0x20], al
jl 0x4553ee
cmp byte [ebp + 0x52], bl
je 0x454c16
cmp byte [ebp + 0x5f], bl
jne 0x454c13
cmp al, bl
mov byte [ebp + 0x5e], 1
jle 0x454c16
mov byte [ebp + 0x5e], bl
cmp byte [ebp + 0x52], bl
mov byte [ebp + 0x5f], 1
je 0x454c28
cmp byte [ebp + 0x3b], bl
jne 0x454c28
mov byte [ebp + 0x52], 2
cmp byte [ebp + 0x52], 2
mov edi, 0xc0000000
jne 0x454c50
cmp byte [ebp + 0x20], bl
jg 0x454c50
push ebx
push ebx
push 4
push ebx
push 3
push edi
push dword [ebp + 0x24]
lea ecx, [ebp + 0x68]
call fcn.00404073
cmp dword [ebp + 0x68], ebx
jne 0x454c6d
push ebx
push ebx
push 3
push ebx
push 3
push edi
push dword [ebp + 0x24]
lea ecx, [ebp + 0x68]
call fcn.00404073
cmp byte [ebp + 0x52], 2
jne 0x455417
mov edi, dword [ebp + 0x3c]
cmp edi, ebx
jle 0x4553ee
cmp dword [ebp - 0x1c], ebx
jle 0x4553ee
cmp dword [ebp + 0x64], ebx
jl 0x454cb5
jg 0x454c8d
cmp dword [ebp + 0x60], ebx
jb 0x454cb5
mov eax, edi
cdq
mov ecx, eax
add ecx, dword [ebp + 0x60]
mov esi, edx
adc esi, dword [ebp + 0x64]
push edx
sub ecx, 1
push eax
sbb esi, ebx
push esi
push ecx
call fcn.004711e0
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
mov esi, 0x7fffffff
jmp 0x454ce4
cmp dword [ebp + 8], 0xffffffff
mov esi, 0x7fffffff
jne 0x454cce
cmp dword [ebp + 0xc], esi
jne 0x454cce
or dword [ebp + 0x60], 0xffffffff
mov dword [ebp + 0x64], esi
jmp 0x454ce4
push dword [ebp + 0xc]
mov eax, edi
push dword [ebp + 8]
cdq
push edx
push eax
call fcn.00471360
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
push dword [ebp + 0x78]
call fcn.0040dca1
pop ecx
push eax
lea ecx, [ebp - 4]
call fcn.0043a4ba
cmp dword [ebp + 0x68], ebx
jne 0x454d08
lea ecx, [ebp - 4]
call fcn.00428a48
jmp 0x455451
cmp byte [ebp + 0x51], bl
mov dword [ebp + 0x10], edi
je 0x454e2e
cmp byte [ebp + 0x20], bl
jg 0x454e2e
lea ecx, [ebp + 0x68]
call fcn.00402abc
cmp byte [ebp + 0x51], 1
jne 0x454d38
push ebx
push ebx
push dword [ebp + 0x24]
call fcn.00435724
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp + 0x24]
lea ecx, [ebp + 0x68]
call fcn.00404073
cmp dword [ebp + 0x68], ebx
je 0x454cfb
cmp byte [ebp + 0x3a], bl
je 0x454e2e
cmp dword [ebp + 0xc], ebx
jl 0x4551fc
jg 0x454d71
cmp dword [ebp + 8], ebx
jb 0x454e2e
push dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
push dword [ebp + 8]
cdq
push edx
push eax
call fcn.00471360
cmp dword [ebp + 0x64], ebx
jl 0x454da0
jg 0x454d8e
cmp dword [ebp + 0x60], ebx
jb 0x454da0
cmp edx, dword [ebp + 0x64]
jl 0x454da0
jg 0x454d9a
cmp eax, dword [ebp + 0x60]
jbe 0x454da0
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x64]
add eax, dword [ebp + 0x18]
adc edx, dword [ebp + 0x1c]
cmp dword [ebp + 0xc], esi
mov dword [ebp + 0x54], eax
mov edi, edx
jl 0x454dc1
jg 0x454db8
cmp dword [ebp + 8], 0xffffffff
jb 0x454dc1
mov dword [ebp + 0x54], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x5e], bl
jne 0x454de4
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x10
cmp edx, edi
jg 0x454de4
jl 0x454de0
cmp eax, dword [ebp + 0x54]
jae 0x454de4
mov byte [ebp + 0x5e], 1
push ebx
push edi
push dword [ebp + 0x54]
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x10
cmp eax, dword [ebp + 0x54]
jne 0x454e13
cmp edx, edi
jne 0x454e13
cmp dword [ebp + 0xc], esi
jg 0x454e2e
jl 0x4551fc
cmp dword [ebp + 8], 0xffffffff
jae 0x454e2e
jmp 0x4551fc
cmp dword [ebp + 0xc], esi
jg 0x454e2e
jl 0x454e20
cmp dword [ebp + 8], 0xffffffff
jae 0x454e2e
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x10
cmp dword [ebp + 0xc], ebx
jl 0x4551fc
jg 0x454e42
cmp dword [ebp + 8], ebx
jbe 0x4551fc
cmp dword [ebp + 0x64], ebx
jl 0x4551fc
jg 0x454e56
cmp dword [ebp + 0x60], ebx
jbe 0x4551fc
xor eax, eax
cmp byte [ebp + 0x3a], bl
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x40], ebx
jne 0x454e6f
cmp byte [ebp + 0x3b], bl
mov byte [ebp + 0x6f], 1
je 0x454e72
mov byte [ebp + 0x6f], bl
cmp byte [ebp + 0x20], bl
mov esi, dword [ebp + 0x18]
jle 0x454e84
mov eax, esi
and eax, 0x1ff
mov dword [ebp + 0x44], eax
cdq
sub esi, eax
mov eax, dword [ebp + 0x1c]
sbb eax, edx
mov edi, eax
js 0x454ed1
jg 0x454e96
cmp esi, ebx
jbe 0x454ed1
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x10
cmp eax, esi
jne 0x454eac
cmp edx, edi
je 0x454ed1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea ecx, [ebp - 4]
call fcn.00428a48
lea ecx, [ebp + 0x68]
call fcn.00402abc
lea ecx, [ebp - 0x18]
call fcn.00428a48
jmp 0x455403
cmp byte [ebp + 0x6f], bl
mov dword [ebp + 0x28], ebx
je 0x454f6d
lea eax, [ebp - 4]
push eax
call fcn.00435b50
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx esi, al
push 0x80000000
push dword [ebp - 4]
lea ecx, [ebp + 0x28]
mov dword [ebp + 0x34], esi
call fcn.00404073
cmp dword [ebp + 0x28], ebx
jne 0x454f16
lea ecx, [ebp + 0x28]
call fcn.00402abc
jmp 0x454cfb
cmp esi, ebx
mov ecx, dword [ebp + 0x48]
jle 0x454f29
mov eax, ecx
and eax, 0x1ff
mov dword [ebp + 0x40], eax
jmp 0x454f2c
mov eax, dword [ebp + 0x40]
cdq
sub ecx, eax
mov eax, dword [ebp + 0x4c]
sbb eax, edx
cmp eax, ebx
mov esi, ecx
mov edi, eax
jl 0x454f6d
jg 0x454f42
cmp ecx, ebx
jbe 0x454f6d
push ebx
push eax
push ecx
push dword [ebp + 0x28]
call fcn.004298d4
add esp, 0x10
cmp eax, esi
jne 0x454f58
cmp edx, edi
je 0x454f6d
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x28]
mov esi, eax
call fcn.00402abc
jmp 0x454eb4
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
je 0x454f79
add eax, ecx
lea edi, [eax + 0x8000]
lea eax, [edi + 0x102a00]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp + 0xc], edi
call fcn.0042e06b
mov esi, dword [ebp + 0x58]
add esi, 0x100000
and esi, 0xfff00000
lea eax, [esi + edi + 0x2800]
add edi, 0x2a00
push edi
push ebx
push esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x1c], eax
call fcn.00470340
mov eax, dword [ebp - 0x1c]
add esp, 0xc
xor edi, edi
cmp byte [ebp + 0x20], bl
mov dword [ebp + 4], ebx
jle 0x454fd5
add eax, 0x1ff
and eax, 0xfffffe00
cmp dword [ebp + 0x34], ebx
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x3c]
jle 0x454fea
add eax, 0x1ff
and eax, 0xfffffe00
cmp dword [ebp + 0x40], ebx
mov dword [ebp + 0x14], eax
mov byte [ebp + 0x7b], bl
jle 0x455038
push ebx
lea eax, [ebp + 0x10]
push eax
mov edi, 0x200
push edi
push esi
push dword [ebp + 0x28]
mov dword [ebp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub edi, dword [ebp + 0x40]
mov eax, edi
cdq
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], edx
cmp dword [ebp + 0x64], ebx
jg 0x455028
jl 0x455025
cmp dword [ebp + 0x60], ebx
jae 0x455028
add edi, dword [ebp + 0x60]
mov eax, dword [ebp + 0x40]
push edi
add eax, esi
push eax
push esi
call fcn.004708c0
add esp, 0xc
cmp dword [ebp + 0x44], ebx
jle 0x4550a2
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x10
push ebx
mov dword [ebp - 0xc], eax
lea eax, [ebp + 0x10]
push eax
push 0x200
push dword [ebp + 0x1c]
mov dword [ebp - 8], edx
push dword [ebp + 0x68]
mov dword [ebp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x44]
push edi
add eax, esi
push esi
push eax
call fcn.004708c0
push dword [ebp + 0x44]
push dword [ebp + 0x1c]
push esi
call fcn.004708c0
add edi, dword [ebp + 0x44]
push ebx
push dword [ebp - 8]
push dword [ebp - 0xc]
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x28
cmp byte [ebp + 0x3a], bl
je 0x4550a2
mov byte [ebp + 0x7b], 1
cmp edi, ebx
mov byte [ebp + 0x53], 1
jg 0x45516d
cmp dword [ebp + 0x64], ebx
jl 0x455175
jg 0x4550c2
cmp dword [ebp + 0x60], ebx
jbe 0x455175
cmp byte [ebp + 0x53], bl
je 0x455175
cmp byte [ebp + 0x6f], bl
je 0x45512b
mov eax, dword [ebp + 0x14]
cdq
cmp edx, dword [ebp + 0x64]
jg 0x4550e5
jl 0x4550e0
cmp eax, dword [ebp + 0x60]
ja 0x4550e5
mov eax, dword [ebp + 0x14]
jmp 0x4550e8
mov eax, dword [ebp + 0x60]
lea ecx, [eax + edi]
cmp ecx, dword [ebp + 0xc]
jle 0x4550f5
mov eax, dword [ebp + 0xc]
sub eax, edi
cmp dword [ebp + 0x34], ebx
jle 0x455104
add eax, 0x1ff
and eax, 0xfffffe00
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
lea eax, [edi + esi]
push eax
push dword [ebp + 0x28]
mov dword [ebp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jbe 0x455175
cmp eax, dword [ebp + 0x60]
jbe 0x455156
mov eax, dword [ebp + 0x60]
jmp 0x455153
mov eax, dword [ebp + 0x30]
cdq
cmp edx, dword [ebp + 0x64]
jg 0x455140
jl 0x45513b
cmp eax, dword [ebp + 0x60]
ja 0x455140
mov eax, dword [ebp + 0x30]
jmp 0x455143
mov eax, dword [ebp + 0x60]
lea ecx, [edi + eax]
cmp ecx, dword [ebp + 0xc]
mov dword [ebp + 0x10], eax
jbe 0x455156
mov eax, dword [ebp + 0xc]
sub eax, edi
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x60], 0xffffffff
jne 0x455165
cmp dword [ebp + 0x64], 0x7fffffff
je 0x45516b
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add edi, eax
mov dword [ebp + 0x44], esi
jmp 0x455387
cmp edi, ebx
jle 0x4553ba
mov byte [ebp + 0x53], bl
mov dword [ebp + 0x44], esi
mov eax, dword [ebp + 0x30]
cmp eax, edi
jle 0x45518c
mov eax, edi
cmp byte [ebp + 0x20], bl
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x3c], ebx
jle 0x4551a1
mov ecx, eax
and ecx, 0x1ff
jmp 0x4551a3
xor ecx, ecx
sub eax, ecx
cmp eax, ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x20], eax
jle 0x455209
push ebx
lea eax, [ebp + 0x3c]
push eax
push dword [ebp - 0x20]
push dword [ebp + 0x44]
push dword [ebp + 0x68]
call fcn.0042c07a
add esp, 0x14
test eax, eax
jne 0x45532d
cmp byte [ebp + 0x5f], bl
jne 0x4552be
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x4551e9
xor eax, eax
inc eax
mov dword [ebp + 0x14], eax
lea ecx, [ebp + 0x58]
call fcn.00428a48
lea ecx, [ebp + 0x28]
call fcn.00402abc
lea ecx, [ebp - 4]
call fcn.00428a48
jmp 0x455825
cmp ecx, ebx
jle 0x455289
mov esi, 0x200
push esi
push ebx
push dword [ebp + 0x1c]
call fcn.00470340
sub esi, dword [ebp - 8]
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.004298d4
add esp, 0x1c
push ebx
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0x10]
push eax
push 0x200
push dword [ebp + 0x1c]
mov dword [ebp - 0x24], edx
push dword [ebp + 0x68]
mov dword [ebp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 8]
add eax, ecx
push esi
push eax
mov eax, dword [ebp + 0x44]
add eax, edi
push eax
call fcn.004708c0
push ebx
push dword [ebp - 0x24]
add edi, esi
push dword [ebp - 0x28]
mov dword [ebp + 0x40], 0x200
push dword [ebp + 0x68]
call fcn.004298d4
mov esi, dword [ebp + 0x4c]
add esp, 0x1c
cmp byte [ebp + 0x3a], bl
je 0x455289
mov byte [ebp + 0x7b], 1
cmp dword [ebp + 0x40], ebx
mov dword [ebp + 0x3c], ebx
jle 0x455368
push ebx
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x44]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x455368
cmp byte [ebp + 0x5f], bl
je 0x4553b3
mov byte [ebp + 0x5f], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, byte [ebp + 0x5f]
lea ecx, [ebp + 0x68]
mov byte [ebp + 0x5d], al
mov byte [ebp + 0x5f], bl
mov dword [ebp + 0x3c], ebx
call fcn.00402abc
push ebx
push ebx
push 4
push ebx
push ebx
push 0xc0000000
push dword [ebp + 0x24]
lea ecx, [ebp + 0x68]
call fcn.00404073
cmp dword [ebp + 0x68], ebx
jne 0x455309
push ebx
push ebx
push 3
push ebx
push ebx
push 0xc0000000
push dword [ebp + 0x24]
lea ecx, [ebp + 0x68]
call fcn.00404073
push ebx
lea eax, [ebp + 0x3c]
push eax
push dword [ebp - 0x20]
push dword [ebp + 0x44]
push dword [ebp + 0x68]
call fcn.0042c07a
add esp, 0x14
test eax, eax
je 0x4551d6
cmp byte [ebp + 0x5d], 2
je 0x455368
mov eax, dword [ebp - 0x20]
cmp dword [ebp + 0x3c], eax
jbe 0x455338
mov dword [ebp + 0x3c], eax
cmp byte [ebp + 0x7b], bl
je 0x45534f
push dword [ebp + 0x3c]
push ebx
push dword [ebp + 0x44]
call fcn.00470340
add esp, 0xc
mov byte [ebp + 0x7b], bl
mov eax, dword [ebp + 0x3c]
sub dword [ebp + 0x40], eax
mov ecx, dword [ebp - 8]
sub edi, eax
mov eax, dword [ebp - 0x20]
add dword [ebp + 0x44], eax
mov byte [ebp + 0x5f], bl
jmp 0x455209
cmp byte [ebp + 0x7b], bl
je 0x45537f
push dword [ebp + 0x3c]
push ebx
push dword [ebp + 0x44]
call fcn.00470340
add esp, 0xc
mov byte [ebp + 0x7b], bl
mov eax, dword [ebp + 0x3c]
add dword [ebp + 0x44], eax
sub edi, eax
cmp edi, dword [ebp - 0x1c]
jge 0x455183
cmp edi, ebx
jle 0x4550ae
cmp esi, dword [ebp + 0x44]
je 0x4550ae
push edi
push dword [ebp + 0x44]
push esi
call fcn.004708c0
add esp, 0xc
jmp 0x4550ae
mov dword [ebp + 4], 1
cmp dword [ebp + 4], ebx
jne 0x4551dc
cmp dword [ebp + 0x64], ebx
jl 0x4553e6
jg 0x4553cf
cmp dword [ebp + 0x60], ebx
jbe 0x4553e6
cmp dword [ebp + 0x60], 0xffffffff
jne 0x4551dc
cmp dword [ebp + 0x64], 0x7fffffff
jne 0x4551dc
mov dword [ebp + 0x14], ebx
jmp 0x4551ec
lea ecx, [ebp + 0x68]
call fcn.00402abc
lea ecx, [ebp - 0x18]
call fcn.00428a48
mov esi, 0x80070057
lea ecx, [ebp + 0x24]
call fcn.00428a48
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
xor esi, esi
cmp byte [ebp + 0x20], 0x11
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp - 0x24], ebx
jne 0x455466
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x58]
push dword [ebp + 0x68]
call fcn.0043593f
add esp, 0xc
cmp edx, ebx
mov esi, eax
mov dword [ebp - 0x24], edx
jg 0x4554d1
jl 0x455451
cmp esi, ebx
jae 0x4554d1
lea ecx, [ebp + 0x68]
call fcn.00402abc
lea ecx, [ebp - 0x18]
call fcn.00428a48
jmp 0x4548a5
cmp dword [ebp + 0x68], ebx
je 0x4554d6
cmp byte [ebp + 0x20], bl
jne 0x4554a9
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.004298d4
mov ecx, dword [ebp + 0x18]
add esp, 0x10
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x1c]
sub ecx, 0x400
sbb eax, ebx
cmp edx, eax
mov dword [ebp + 0x64], edx
jg 0x4554d1
jl 0x45549e
cmp dword [ebp + 0x60], ecx
jae 0x4554d1
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4554d1
push dword [ebp + 0x20]
push dword [ebp + 0x68]
call fcn.0042c008
cmp edx, ebx
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
jg 0x4554d1
jl 0x4554c6
cmp eax, ebx
jae 0x4554d1
or dword [ebp + 0x60], 0xffffffff
mov dword [ebp + 0x64], 0x7fffffff
cmp dword [ebp + 0x68], ebx
jne 0x455515
cmp byte [ebp + 0x20], bl
jne 0x455503
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x24]
call fcn.00435724
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push edi
push dword [ebp + 0x24]
lea ecx, [ebp + 0x68]
call fcn.00404073
mov byte [ebp + 0x39], 1
cmp dword [ebp + 0x68], ebx
jne 0x455515
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x454ebc
cmp byte [ebp + 0x39], bl
je 0x45552a
cmp byte [ebp + 0x20], bl
jne 0x45552a
or dword [ebp + 0x60], 0xffffffff
mov dword [ebp + 0x64], 0x7fffffff
cmp byte [ebp + 0x20], bl
mov dword [ebp + 0x28], ebx
je 0x45553d
mov eax, dword [ebp + 0x18]
and eax, 0x1ff
mov dword [ebp + 0x28], eax
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x60]
add ecx, esi
adc edi, dword [ebp - 0x24]
mov esi, dword [ebp + 0x64]
sub eax, ecx
mov dword [ebp], eax
movzx eax, word [ebp + 0x28]
cdq
sbb esi, edi
sub ecx, eax
push ebx
sbb edi, edx
push edi
push ecx
push dword [ebp + 0x68]
mov dword [ebp + 0x1c], ebx
call fcn.004298d4
add esp, 0x10
cmp edx, ebx
jg 0x45558e
jl 0x455579
cmp eax, ebx
jae 0x45558e
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x1c]
mov esi, eax
call fcn.00428a48
jmp 0x454ebc
cmp byte [ebp + 0x6f], bl
je 0x4555ce
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x64]
cdq
cmp ecx, edx
jl 0x4555aa
jg 0x4555a5
cmp dword [ebp + 0x60], eax
jbe 0x4555aa
mov dword [ebp + 0x60], eax
mov ecx, edx
cmp ecx, ebx
jl 0x455814
jg 0x4555bd
cmp dword [ebp + 0x60], ebx
jbe 0x455814
push dword [ebp + 0x20]
movzx eax, word [ebp + 0x28]
push eax
push ecx
push dword [ebp + 0x60]
push dword [ebp + 0x40]
jmp 0x45563c
cmp dword [ebp + 0x30], ebx
jl 0x4555f2
jg 0x4555da
cmp dword [ebp + 0x2c], ebx
jb 0x4555f2
cmp dword [ebp + 0x30], esi
jg 0x4555f2
jl 0x4555e9
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp]
jae 0x4555f2
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x30]
mov dword [ebp], eax
cmp byte [ebp + 0x5d], bl
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x78], eax
je 0x45564c
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x1c]
call fcn.0042e14c
push dword [ebp + 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, esi
jl 0x455624
jg 0x455621
cmp eax, dword [ebp]
jbe 0x455624
mov ecx, dword [ebp]
cmp ecx, ebx
jle 0x455814
push dword [ebp + 0x20]
movzx eax, word [ebp + 0x28]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp + 0x1c]
push dword [ebp + 0x68]
call fcn.004361a3
add esp, 0x18
jmp 0x455814
movzx ecx, word [ebp + 0x28]
mov eax, 0x200
sub eax, ecx
lea edi, [ebp - 0x230]
mov dword [ebp + 0x34], eax
mov al, byte [ebp + 0x53]
and edi, 0xfffffe00
cmp esi, ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov byte [ebp + 0x5d], bl
mov byte [ebp + 0x6f], al
jl 0x455814
jle 0x45580b
cmp dword [ebp + 0x64], ebx
jg 0x45569b
jl 0x45568f
cmp dword [ebp + 0x60], ebx
ja 0x45569b
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x455814
cmp dword [ebp + 0x34], ebx
mov dword [ebp - 8], ebx
jle 0x455814
cmp esi, ebx
jl 0x4557d8
jg 0x4556ba
cmp dword [ebp], ebx
jbe 0x4557d8
cmp dword [ebp + 0x64], ebx
jg 0x4557b3
jl 0x4556ce
cmp dword [ebp + 0x60], ebx
ja 0x4557b3
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x4557d8
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
pop ecx
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
jne 0x455734
inc eax
inc eax
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00432f9a
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x455734
cmp cx, 0x30
jb 0x45571b
cmp cx, 0x39
jbe 0x45573c
cmp byte [ebp + 0x6f], bl
je 0x45572f
or ecx, 0x20
cmp cx, 0x61
jb 0x45572f
cmp cx, 0x7a
jbe 0x45573c
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45570f
cmp word [eax], 0x30
jne 0x45575c
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x45575c
add eax, 4
mov byte [ebp + 0x6f], 1
mov dword [ebp + 0x78], eax
jmp 0x455761
cmp byte [ebp + 0x6f], bl
je 0x455791
push 2
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
call fcn.0042ebd5
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.0040fd8a
add esp, 0x10
test al, al
jne 0x4557a5
mov al, byte [ebp + 0x53]
mov byte [ebp + 0x6f], al
jmp 0x4557a5
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ad7
cmp eax, 1
pop ecx
pop ecx
jl 0x4557d8
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x58]
je 0x4557d8
mov al, byte [ebp + 0x48]
mov byte [ebp + 0x5d], al
add dword [ebp + 0x60], 0xffffffff
mov eax, dword [ebp - 8]
mov cl, byte [ebp + 0x5d]
adc dword [ebp + 0x64], 0xffffffff
mov byte [eax + edi], cl
inc eax
add dword [ebp], 0xffffffff
mov dword [ebp - 8], eax
adc esi, 0xffffffff
cmp eax, dword [ebp + 0x34]
jl 0x4556a7
cmp dword [ebp - 8], ebx
jle 0x455814
push dword [ebp + 0x20]
movzx eax, word [ebp + 0x28]
push eax
mov eax, dword [ebp - 8]
cdq
push edx
push eax
push edi
push dword [ebp + 0x68]
call fcn.004361a3
add esp, 0x18
cmp esi, ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x34], 0x200
jg 0x455683
jl 0x455814
cmp dword [ebp], ebx
ja 0x455683
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x1c]
call fcn.00428a48
cmp byte [ebp + 0x5e], bl
je 0x455833
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea ecx, [ebp + 0x68]
call fcn.00402abc
lea ecx, [ebp - 0x18]
call fcn.00428a48
mov esi, dword [ebp + 0x14]
jmp 0x455403