Function at 0x4571a5
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
push ebx
push esi
push edi
mov dword [ebp - 0x38], ecx
push ecx
lea ecx, [ebp - 0x80]
call fcn.0043f42c
lea eax, [ebp + 8]
push eax
call fcn.004378b6
pop ecx
lea ecx, [ebp - 0x30]
call fcn.0043d3a5
lea ecx, [ebp - 0x3c]
call fcn.0043d3a5
lea ecx, [ebp - 0x74]
call fcn.0043d3a5
lea ecx, [ebp - 0x24]
call fcn.0043d3a5
mov eax, dword [ebp + 8]
push 1
mov dword [ebp - 8], eax
push 0x2c
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x80]
call fcn.0044e4ae
push 0
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.0043fd51
mov esi, dword [ebp - 0x30]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor ebx, ebx
test ax, ax
mov byte [ebp - 0x19], 0
mov byte [ebp - 9], 0
mov byte [ebp - 0xa], 0
mov ecx, esi
je 0x45724a
call fcn.004820ac
test al, al
je 0x457234
mov ebx, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x457229
test ebx, ebx
je 0x45724a
and word [ebx], ax
mov esi, dword [ebp - 0x30]
inc ebx
inc ebx
test ebx, ebx
mov eax, esi
mov dword [ebp + 8], eax
je 0x4572cd
cmp word [esi], 0x2a
jne 0x4572cd
cmp word [eax + 2], 0x2d
je 0x4572cd
push 6
lea eax, [ebp + 8]
push eax
push str.nobom
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45727d
mov byte [ebp - 9], 1
jmp 0x4572c1
push 0xa
lea eax, [ebp + 8]
push eax
push str.transonly
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x45729a
mov byte [ebp - 0x19], 1
jmp 0x4572c1
push 3
lea eax, [ebp + 8]
push eax
push 0x4accd4
call fcn.0043f0e5
add esp, 0xc
test al, al
je 0x4572b7
mov byte [ebp - 0xa], 1
jmp 0x4572c1
lea eax, [ebp + 8]
push eax
call fcn.00407fcf
pop ecx
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
mov esi, dword [ebp - 0x30]
je 0x457259
xor edi, edi
cmp ebx, edi
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x66], 0
mov byte [ebp - 0x1a], 0
mov byte [ebp + 0xb], 0
mov byte [ebp - 0x65], 0
mov byte [ebp - 0x1b], 0
je 0x45730b
push ebx
lea ecx, [ebp - 0x44]
call fcn.00445746
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x30], eax
call fcn.00437884
mov esi, dword [ebp - 0x30]
cmp byte [ebp - 0xa], 0
je 0x457768
mov ecx, dword [ebp - 0x38]
push edi
lea eax, [ebp - 0x30]
push eax
call fcn.00402db0
mov eax, dword [ebp - 8]
cmp word [eax], 0x2c
jne 0x45732f
add dword [ebp - 8], 2
lea eax, [ebp - 8]
push eax
call fcn.004378b6
mov eax, dword [ebp - 8]
movzx eax, word [eax]
cmp ax, di
pop ecx
mov dword [ebp - 0x10], eax
je 0x457509
add dword [ebp - 8], 2
lea eax, [ebp - 8]
push eax
call fcn.004378b6
mov eax, dword [ebp - 8]
cmp word [eax], 0x2c
pop ecx
jne 0x457366
add dword [ebp - 8], 2
or dword [ebp - 0x70], 0xffffffff
or dword [ebp - 0x6c], 0xffffffff
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x14], 1
call fcn.004050a5
test eax, eax
pop ecx
pop ecx
jle 0x457509
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 8]
push eax
call fcn.00405085
test eax, eax
pop ecx
pop ecx
jle 0x457509
cmp dword [ebp - 0x14], edi
jle 0x457509
cmp dword [ebp - 0x14], 8
jg 0x457509
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004050a5
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004050a5
add esp, 0x10
mov esi, 0x4beb4c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp - 0x38]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp - 0x30]
call fcn.0040eec0
mov ecx, eax
cmp ecx, edi
jne 0x457406
push esi
jmp 0x457503
cmp dword [ebp - 0x6c], edi
mov ebx, dword [ecx + 0x10]
jg 0x45741e
jl 0x457415
cmp dword [ebp - 0x70], edi
ja 0x45741e
mov eax, ebx
cdq
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov esi, dword [ebp - 0x44]
mov eax, ebx
cdq
cmp esi, edx
mov esi, dword [ebp - 0x48]
jl 0x457439
jg 0x4574fe
cmp esi, eax
ja 0x4574fe
mov edx, dword [ecx + 4]
mov ecx, ebx
sub ecx, esi
cmp ecx, dword [ebp - 0x70]
mov dword [ebp + 8], ecx
jle 0x45744b
mov ecx, dword [ebp - 0x70]
cmp ecx, edi
jle 0x4574fe
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x64]
add esi, edx
cmp ax, 0x2d
jne 0x4574b1
mov eax, dword [ebp - 0x60]
neg ebx
adc eax, edi
neg eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x10], 0x2b
mov eax, ecx
cdq
idiv dword [ebp - 0x14]
xor eax, eax
mov edi, esi
mov byte [ebp + 0xb], bl
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov byte [ebp - 1], al
sub edi, edx
add edi, ecx
cmp word [ebp - 0x10], 0x3e
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x34], edi
jne 0x457560
mov byte [ebp - 1], 2
jmp 0x45756b
cmp ax, 0x3c
jne 0x4574d0
mov eax, dword [ebp - 0x60]
neg ebx
adc eax, edi
neg eax
mov dword [ebp - 0x10], 0x3e
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x64], ebx
cmp ax, 0x2b
je 0x4574e8
cmp ax, 0x5e
je 0x4574e8
cmp ax, 0x23
je 0x4574ee
cmp ax, 0x3e
jne 0x4574fe
cmp ax, 0x23
jne 0x457477
add ebx, edx
cmp ecx, dword [ebp + 8]
mov edi, esi
jle 0x4574fa
mov ecx, dword [ebp + 8]
test ecx, ecx
jg 0x457513
push 0x4beb4c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x457f6e
mov esi, ecx
and esi, 3
mov eax, ebx
sub eax, esi
add eax, ecx
jmp 0x45752e
mov edx, dword [edi]
mov ecx, dword [ebx]
mov dword [ebx], edx
add ebx, 4
mov dword [edi], ecx
add edi, 4
cmp ebx, eax
jb 0x457520
test esi, esi
jle 0x457756
push esi
lea eax, [ebp + 8]
push edi
push eax
call fcn.0041255f
push esi
push ebx
push edi
call fcn.0041255f
push esi
lea eax, [ebp + 8]
push eax
push ebx
call fcn.0041255f
add esp, 0x24
jmp 0x457756
cmp word [ebp - 0x10], 0x5e
jne 0x45756b
mov byte [ebp - 1], 1
cmp dword [ebp - 0x14], 8
jl 0x4575fb
and byte [ebp + 0xb], 0x3f
mov al, 0x40
sub al, byte [ebp + 0xb]
cmp esi, edi
mov byte [ebp - 9], al
jae 0x457704
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sub eax, 0
je 0x4575e7
dec eax
je 0x4575d6
dec eax
jne 0x4575ef
mov edi, dword [esi]
mov edx, dword [esi + 4]
movzx ecx, bl
mov eax, edi
call fcn.00492290
movzx ecx, byte [ebp - 9]
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x6c], eax
mov eax, edi
call fcn.004921c0
mov edi, dword [ebp - 0x34]
or ebx, eax
mov eax, dword [ebp - 0x6c]
or eax, edx
mov dword [esi], ebx
mov ebx, dword [ebp - 0x64]
mov dword [esi + 4], eax
jmp 0x4575ef
cmp word [ebp - 0x10], 0x5e
jne 0x4575ef
mov eax, dword [ebp - 0x60]
xor dword [esi], ebx
xor dword [esi + 4], eax
jmp 0x4575ef
add dword [esi], ebx
mov eax, dword [ebp - 0x60]
adc dword [esi + 4], eax
add esi, dword [ebp - 0x14]
cmp esi, edi
jb 0x457590
jmp 0x457704
cmp dword [ebp - 0x14], 4
jl 0x457657
and byte [ebp + 0xb], 0x1f
mov cl, 0x20
sub cl, byte [ebp + 0xb]
cmp esi, edi
mov byte [ebp - 9], cl
jae 0x457704
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sub eax, 0
je 0x457649
dec eax
je 0x45763e
dec eax
jne 0x45764b
mov eax, dword [esi]
mov edx, eax
shl edx, cl
mov cl, byte [ebp + 0xb]
shr eax, cl
mov cl, byte [ebp - 9]
or edx, eax
mov dword [esi], edx
jmp 0x45764b
cmp word [ebp - 0x10], 0x5e
jne 0x45764b
xor dword [esi], ebx
jmp 0x45764b
add dword [esi], ebx
add esi, dword [ebp - 0x14]
cmp esi, edi
jb 0x45761c
jmp 0x457704
cmp dword [ebp - 0x14], 2
jl 0x4576b7
and byte [ebp + 0xb], 0xf
mov cl, 0x10
sub cl, byte [ebp + 0xb]
cmp esi, edi
mov byte [ebp - 9], cl
jae 0x457704
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sub eax, 0
je 0x4576ab
dec eax
je 0x45769f
dec eax
jne 0x4576ae
xor eax, eax
mov ax, word [esi]
mov edx, eax
shl edx, cl
mov cl, byte [ebp + 0xb]
shr ax, cl
mov cl, byte [ebp - 9]
or edx, eax
mov word [esi], dx
jmp 0x4576ae
cmp word [ebp - 0x10], 0x5e
jne 0x4576ae
xor word [esi], bx
jmp 0x4576ae
add word [esi], bx
add esi, dword [ebp - 0x14]
cmp esi, edi
jb 0x457678
jmp 0x457704
and byte [ebp + 0xb], 7
mov cl, 8
sub cl, byte [ebp + 0xb]
cmp esi, edi
mov byte [ebp - 9], cl
jae 0x457704
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sub eax, 0
je 0x4576fb
dec eax
je 0x4576f0
dec eax
jne 0x4576fd
mov al, byte [esi]
mov dl, al
shl dl, cl
mov cl, byte [ebp + 0xb]
shr al, cl
mov cl, byte [ebp - 9]
or dl, al
mov byte [esi], dl
jmp 0x4576fd
cmp word [ebp - 0x10], 0x5e
jne 0x4576fd
xor byte [esi], bl
jmp 0x4576fd
add byte [esi], bl
add esi, dword [ebp - 0x14]
cmp esi, edi
jb 0x4576ce
cmp dword [ebp - 0x44], 0
jle 0x45773e
cmp word [ebp - 0x10], 0x3e
je 0x45773e
mov edi, dword [ebp - 0x44]
push edi
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.0041255f
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x14]
lea edi, [ebp + edi - 0x58]
add esp, 0xc
and dword [ebp - 0x44], 0
mov dword [ebp - 0x40], esi
lea esi, [ebp - 0x58]
mov dword [ebp - 0x34], edi
jmp 0x45756b
cmp dword [ebp - 0x5c], 0
je 0x457756
push dword [ebp - 0x5c]
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0x40]
call fcn.0041255f
add esp, 0xc
push 0x4beb4c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
jmp 0x457f6e
mov ecx, dword [ebp - 8]
push 0x2c
pop ebx
cmp word [ecx], bx
lea eax, [ecx + 2]
mov dword [ebp - 0x6c], eax
jne 0x45779c
push 1
mov dword [ebp - 8], eax
push ebx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x80]
call fcn.0044e4ae
push edi
lea ecx, [ebp - 0x3c]
push ecx
push eax
call fcn.0043fe0d
mov esi, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x4577c8
add dword [ebp - 8], 2
push 1
push ebx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x80]
call fcn.0044e4ae
push edi
lea ecx, [ebp - 0x74]
push ecx
push eax
call fcn.0043fd51
mov esi, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x4577f4
add dword [ebp - 8], 2
push 1
push ebx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x80]
call fcn.0044e4ae
push edi
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.0043fd51
mov esi, dword [ebp - 0x30]
add esp, 0xc
mov ax, word [esi]
cmp ax, di
je 0x457f6b
mov ecx, dword [ebp - 0x3c]
cmp word [ecx], di
je 0x457f6b
mov ecx, dword [ebp - 0x74]
cmp word [ecx], di
je 0x457f6b
mov edx, dword [ebp - 0x24]
cmp word [edx], di
je 0x457f6b
xor ebx, ebx
push 0x2a
mov edi, ecx
pop ecx
cmp ax, cx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 1], bl
jne 0x457877
cmp word [esi + 2], cx
jne 0x457868
add esi, 4
cmp word [esi], cx
mov byte [ebp - 0x1a], 2
mov byte [ebp - 0x29], al
jne 0x45787a
inc esi
inc esi
mov byte [ebp - 0x1a], 3
jmp 0x45787a
cmp ax, cx
jne 0x457877
mov al, byte [esi]
mov byte [ebp - 0x29], al
add esi, 2
jmp 0x45787a
mov al, byte [ebp - 0x66]
cmp word [esi], 0x2d
jne 0x457884
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x457509
push esi
push 0x4accd0
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x4578a6
mov byte [ebp - 1], 1
jmp 0x4579b9
push esi
push str.ANSI
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x4578bf
mov dword [ebp - 0x14], ebx
jmp 0x4579b9
push esi
push 0x4acccc
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x4578dc
mov dword [ebp - 0x14], 0x3a8
jmp 0x4579b9
push esi
push str.BIG5
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x4578f9
mov dword [ebp - 0x14], 0x3b6
jmp 0x4579b9
push esi
push str.UTF8
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457916
mov dword [ebp - 0x14], 0xfde9
jmp 0x4579b9
push esi
push str.UTF7
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457933
mov dword [ebp - 0x14], 0xfde8
jmp 0x4579b9
push esi
push str.UNICODE
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x45794d
mov dword [ebp - 0x10], 0x4b0
jmp 0x4579b9
push esi
push 0x4a4a50
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x457944
push esi
push str.UNICODEB
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457978
mov dword [ebp - 0x10], 0x4b1
jmp 0x4579b9
push esi
push str.UNIB
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x45796f
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.00412674
add esp, 4
test al, al
je 0x4579a7
push esi
call fcn.0043de9a
pop ecx
mov dword [ebp - 0x14], eax
jmp 0x4579b9
cmp cx, bx
jne 0x457509
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x74]
mov ax, word [ecx]
cmp ax, 0x2a
jne 0x4579e6
cmp word [ecx + 2], ax
jne 0x4579d6
mov byte [ebp + 0xb], al
mov byte [ebp - 0x1b], al
lea edi, [ecx + 4]
jmp 0x4579e9
cmp ax, 0x2a
jne 0x4579e6
mov al, byte [ecx]
mov byte [ebp + 0xb], al
lea edi, [ecx + 2]
jmp 0x4579e9
mov al, byte [ebp - 0x65]
cmp word [edi], 0x2d
jne 0x4579f3
mov al, byte [edi]
inc edi
inc edi
test al, al
je 0x457509
push edi
push str.ANSI
call fcn.00438ae0
test al, al
pop ecx
pop ecx
mov esi, 0x4a9d70
mov ebx, 0x4a9d74
je 0x457a1f
and dword [ebp - 0x50], 0
jmp 0x457b34
push edi
push 0x4acccc
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457a3c
mov dword [ebp - 0x50], 0x3a8
jmp 0x457b34
push edi
push str.BIG5
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457a59
mov dword [ebp - 0x50], 0x3b6
jmp 0x457b34
push edi
push str.UTF8
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457a84
mov dword [ebp - 0x50], 0xfde9
mov dword [ebp - 0x4c], 0x4a9d78
mov dword [ebp - 0x40], 3
jmp 0x457b34
push edi
push str.UTF7
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457aa1
mov dword [ebp - 0x50], 0xfde8
jmp 0x457b34
push edi
push str.UNICODE
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457ac5
mov dword [ebp - 0x28], 0x4b0
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x40], 2
jmp 0x457b34
push edi
push 0x4a4a50
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x457ab2
push edi
push str.UNICODEB
call fcn.00438ae0
test al, al
pop ecx
pop ecx
jne 0x457af8
push edi
push str.UNIB
call fcn.00438ae0
test al, al
pop ecx
pop ecx
je 0x457b04
mov dword [ebp - 0x28], 0x4b1
mov dword [ebp - 0x4c], ebx
jmp 0x457abc
xor ecx, ecx
mov cx, word [edi]
push ecx
call fcn.00412674
add esp, 4
test al, al
je 0x457b22
push edi
call fcn.0043de9a
pop ecx
mov dword [ebp - 0x50], eax
jmp 0x457b34
test cx, cx
jne 0x457509
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x5c], eax
cmp byte [ebp - 9], 0
je 0x457b3e
and dword [ebp - 0x4c], 0
xor ebx, ebx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x20], ebx
call fcn.0043d27e
xor edi, edi
cmp byte [ebp - 0x29], 0
mov byte [ebp - 0xa], 0
jne 0x457cfe
mov eax, dword [ebp - 0x6c]
xor esi, esi
inc esi
push esi
mov dword [ebp - 8], eax
push 0x2c
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x34], ebx
call fcn.0044e4ae
push ebx
lea ecx, [ebp - 0x3c]
push ecx
push eax
call fcn.0043fd51
push dword [ebp - 0x3c]
call fcn.004110a0
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp - 0x34]
call fcn.004050ca
mov edi, dword [ebp - 0x34]
cmp edi, ebx
jne 0x457bc9
lea ecx, [ebp - 0x34]
call fcn.00402b8a
lea ecx, [ebp - 0x18]
call fcn.00437884
lea ecx, [ebp - 0x20]
call fcn.00402b8a
jmp 0x457f6e
push 2
push ebx
push ebx
push edi
call fcn.004389fe
push 1
push ebx
push ebx
push edi
call fcn.004389fe
push ebx
push ebx
mov esi, eax
push ebx
push edi
mov dword [ebp - 8], esi
call fcn.004389fe
add esp, 0x30
add esi, 0xa
push esi
lea ecx, [ebp - 0x18]
call fcn.0043d2c0
mov esi, dword [ebp - 0x18]
push ebx
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 8]
mov byte [esi + 2], 0
mov byte [esi + 1], 0
push esi
mov byte [esi], 0
or dword [ebp - 0x60], 0xffffffff
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x60]
cmp eax, ebx
mov edi, eax
jge 0x457c32
lea ecx, [ebp - 0x34]
call fcn.00402b8a
jmp 0x457f5b
add eax, esi
cmp byte [ebp - 1], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
mov dword [ebp - 0x54], ebx
jne 0x457c51
cmp dword [ebp - 0x10], 0x4b0
jne 0x457c7b
push 2
push 0x4a9d70
push esi
call fcn.00437938
add esp, 0xc
test eax, eax
jne 0x457c75
mov dword [ebp - 0x10], 0x4b0
mov dword [ebp - 0x54], 2
jmp 0x457cd2
cmp byte [ebp - 1], 0
jne 0x457c84
cmp dword [ebp - 0x10], 0x4b1
jne 0x457ca7
push 2
push 0x4a9d74
push esi
call fcn.00437938
add esp, 0xc
test eax, eax
jne 0x457ca1
mov dword [ebp - 0x10], 0x4b1
jmp 0x457c6c
cmp byte [ebp - 1], 0
jne 0x457cb0
cmp dword [ebp - 0x14], 0xfde9
jne 0x457cea
push 3
push 0x4a9d78
push esi
call fcn.00437938
add esp, 0xc
test eax, eax
jne 0x457cea
mov dword [ebp - 0x14], 0xfde9
mov dword [ebp - 0x54], 3
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 8]
sub eax, ecx
add eax, 3
push eax
add ecx, esi
push ecx
push esi
call fcn.00412515
add esp, 0xc
sub edi, dword [ebp - 0x54]
jns 0x457cf1
xor edi, edi
lea ecx, [ebp - 0x34]
call fcn.00402b8a
jmp 0x457ddd
cmp byte [ebp - 0x1a], 0
je 0x457d99
mov ecx, dword [ebp - 0x38]
xor esi, esi
push esi
lea eax, [ebp - 0x3c]
push eax
call fcn.00402db0
mov ecx, dword [ebp - 0x38]
push esi
push 0xffffffffffffffff
push esi
push dword [ebp - 0x3c]
call fcn.0040eec0
mov ebx, eax
cmp ebx, esi
je 0x457d7a
cmp byte [ebp - 0x1a], 3
jne 0x457d48
push dword [ebx + 4]
lea eax, [ebp - 0x18]
push eax
call fcn.004413b0
pop ecx
pop ecx
mov edi, eax
mov byte [ebp - 0xa], 2
jmp 0x457d84
mov edi, dword [ebx + 0x10]
lea eax, [edi + 8]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043d2c0
mov esi, dword [ebp - 0x18]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.0048f710
push edi
push dword [ebx + 4]
push esi
call fcn.0041255f
add esp, 0x18
mov byte [ebp - 0xa], 1
jmp 0x457d87
push 8
lea ecx, [ebp - 0x18]
call fcn.0043d2c0
mov esi, dword [ebp - 0x18]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.0048f710
add esp, 0xc
jmp 0x457ddd
cmp dword [ebp - 0x44], ebx
je 0x457dc6
push 0xffffffffffffffff
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x18]
call fcn.0043d4c9
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
shl edi, 1
lea eax, [edi + 8]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043d2c0
jmp 0x457dd6
push dword [ebp - 0x3c]
lea eax, [ebp - 0x18]
push eax
call fcn.004413b0
pop ecx
pop ecx
mov edi, eax
mov esi, dword [ebp - 0x18]
mov byte [ebp - 0xa], 2
test edi, edi
jl 0x457f5b
cmp byte [ebp - 1], 0
je 0x457e68
cmp byte [ebp - 0xa], 0
je 0x457e68
push 2
push 0x4a9d70
push esi
xor ebx, ebx
call fcn.00437938
add esp, 0xc
test eax, eax
push 2
jne 0x457e12
mov dword [ebp - 0x10], 0x4b0
jmp 0x457e4c
push 0x4a9d74
push esi
call fcn.00437938
add esp, 0xc
test eax, eax
jne 0x457e2f
mov dword [ebp - 0x10], 0x4b1
push 2
jmp 0x457e4c
push 3
push 0x4a9d78
push esi
call fcn.00437938
add esp, 0xc
test eax, eax
jne 0x457e62
mov dword [ebp - 0x14], 0xfde9
push 3
pop ebx
mov eax, edi
sub eax, ebx
add eax, 4
push eax
lea eax, [ebx + esi]
push eax
push esi
call fcn.00412515
add esp, 0xc
sub edi, ebx
jns 0x457e68
xor edi, edi
lea ecx, [ebp - 8]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x6c], esi
call fcn.0043d3a5
mov ebx, dword [ebp - 0x50]
cmp ebx, dword [ebp - 0x14]
jne 0x457f07
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x10]
jne 0x457f07
cmp byte [ebp - 0x1b], 0
je 0x457ea8
push 0
lea eax, [ebp - 0x24]
push eax
push edi
push esi
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call fcn.004489cd
add esp, 0x18
jmp 0x457eea
cmp byte [ebp + 0xb], 0
jne 0x457eba
push edi
push esi
lea ecx, [ebp - 0x20]
call fcn.00437813
jmp 0x457eea
cmp dword [ebp - 0x5c], 0
jne 0x457ed3
push edi
lea eax, [ebp - 8]
push esi
push eax
call fcn.00441329
add esp, 0xc
push dword [ebp - 8]
jmp 0x457edf
cmp dword [ebp - 0x44], 0
je 0x457ede
push dword [ebp - 0x3c]
jmp 0x457edf
push esi
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
call fcn.0043cc80
lea ecx, [ebp - 8]
call fcn.00437884
lea ecx, [ebp - 0x18]
call fcn.00437884
lea ecx, [ebp - 0x20]
call fcn.00402b8a
jmp 0x457761
cmp dword [ebp - 0x10], 0x4b1
jne 0x457f23
push edi
push esi
mov dword [ebp - 0x10], 0x4b0
call fcn.0043b85d
pop ecx
pop ecx
and edi, 0xfffffffe
cmp byte [ebp + 0xb], 0
jne 0x457f9f
push dword [ebp - 0x24]
call fcn.004110a0
pop ecx
push 0
push 0x80
push 4
push 0
push 7
push 0x40000000
push eax
lea ecx, [ebp - 0x20]
call fcn.004050ca
cmp dword [ebp - 0x20], 0
jne 0x457f9f
lea ecx, [ebp - 8]
call fcn.00437884
lea ecx, [ebp - 0x18]
call fcn.00437884
lea ecx, [ebp - 0x20]
call fcn.00402b8a
xor esi, esi
inc esi
lea ecx, [ebp - 0x24]
call fcn.00437884
lea ecx, [ebp - 0x74]
call fcn.00437884
lea ecx, [ebp - 0x3c]
call fcn.00437884
lea ecx, [ebp - 0x30]
call fcn.00437884
lea ecx, [ebp - 0x80]
call fcn.00437884
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8
and dword [ebp - 0x44], 0
mov eax, 0x3a8
cmp ebx, eax
mov ebx, 0x3b6
jne 0x457fb6
cmp dword [ebp - 0x14], ebx
je 0x457fc0
cmp dword [ebp - 0x14], eax
jne 0x45802e
cmp dword [ebp - 0x50], ebx
jne 0x45802e
cmp byte [ebp - 0x19], 0
je 0x457fca
mov byte [ebp - 0x19], 3
lea ecx, [ebp - 0x34]
call fcn.0043d27e
xor eax, eax
cmp dword [ebp - 0x50], ebx
sete al
push eax
lea eax, [ebp - 0x34]
push eax
push esi
call fcn.0044143d
mov eax, esi
mov esi, dword [ebp - 0x34]
add esp, 0xc
push esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x34], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp - 0x19], 3
mov edi, eax
mov dword [ebp - 0x54], esi
jne 0x458026
cmp byte [ebp + 0xb], 0
jne 0x458026
test edi, edi
jle 0x458019
push edi
push esi
lea ecx, [ebp - 0x20]
call fcn.00437813
lea ecx, [ebp - 0x34]
call fcn.00437884
jmp 0x4581c6
lea ecx, [ebp - 0x34]
call fcn.00437884
mov ebx, edi
shr ebx, 1
cmp dword [ebp - 0x10], 0
jne 0x458071
lea ebx, [edi + 0xa]
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp - 8]
call fcn.0043d3ea
push ebx
push dword [ebp - 8]
push edi
push esi
push 0
push dword [ebp - 0x14]
call dword [0x4bdb9c]
mov ebx, eax
test ebx, ebx
jge 0x458060
xor ebx, ebx
mov eax, dword [ebp - 8]
lea edi, [ebx + ebx]
and word [edi + eax], 0
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x28], 0x4b1
jne 0x458085
push edi
push dword [ebp - 0x54]
call fcn.0043b85d
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp - 0x28], eax
jle 0x458116
cmp byte [ebp - 0x1b], al
je 0x4580b3
xor esi, esi
push esi
lea eax, [ebp - 0x24]
push eax
push edi
push dword [ebp - 0x54]
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call fcn.004489cd
add esp, 0x18
jmp 0x4581d6
cmp byte [ebp + 0xb], 0
jne 0x4580de
cmp edi, eax
jle 0x4581c6
cmp dword [ebp - 0x4c], 0
je 0x4580d5
push dword [ebp - 0x40]
lea ecx, [ebp - 0x20]
push dword [ebp - 0x4c]
call fcn.00437813
push edi
push dword [ebp - 0x54]
jmp 0x45817b
cmp dword [ebp - 0x5c], eax
jne 0x45811b
lea ecx, [ebp + 8]
call fcn.0043d3a5
push ebx
push dword [ebp - 0x54]
lea eax, [ebp + 8]
push eax
call fcn.0044138a
mov ecx, dword [ebp - 0x38]
add esp, 0xc
push dword [ebp + 8]
push dword [ebp - 0x24]
call fcn.0043cc80
lea ecx, [ebp + 8]
call fcn.00437884
jmp 0x4581c6
cmp dword [ebp - 0x5c], eax
je 0x458123
push dword [ebp - 0x6c]
jmp 0x4581bb
shr edi, 1
lea esi, [edi + edi*2]
lea esi, [esi + esi + 0xa]
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x44]
call fcn.0043d2c0
mov ebx, dword [ebp - 0x44]
xor eax, eax
push eax
push eax
push esi
push ebx
push edi
push dword [ebp - 0x54]
push eax
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test esi, esi
jge 0x458157
xor esi, esi
cmp byte [ebp + 0xb], 0
mov byte [ebx + esi], 0
jne 0x458185
test esi, esi
jle 0x4581c6
cmp dword [ebp - 0x4c], 0
je 0x458179
push dword [ebp - 0x40]
lea ecx, [ebp - 0x20]
push dword [ebp - 0x4c]
call fcn.00437813
push esi
push ebx
lea ecx, [ebp - 0x20]
call fcn.00437813
jmp 0x4581c6
cmp byte [ebp - 0x1b], 0
je 0x4581aa
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
lea ecx, [ebp - 0x24]
push ecx
push eax
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call fcn.004489cd
add esp, 0x18
jmp 0x4581c6
push esi
lea eax, [ebp - 8]
push ebx
push eax
call fcn.00441329
add esp, 0xc
push dword [ebp - 8]
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
call fcn.0043cc80
xor esi, esi
cmp dword [ebp - 0x20], esi
je 0x4581d6
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp - 0x44]
call fcn.00437884
lea ecx, [ebp - 8]
call fcn.00437884
jmp 0x457bb4