Function at 0x4571ac
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
push ebx
push esi
push edi
mov dword [ebp - 0x44], ecx
push ecx
lea ecx, [ebp - 0x84]
call fcn.0043f504
lea eax, [ebp + 8]
push eax
call fcn.004379a9
pop ecx
lea ecx, [ebp - 0x30]
call fcn.0043d47d
lea ecx, [ebp - 0x58]
call fcn.0043d47d
lea ecx, [ebp - 0x6c]
call fcn.0043d47d
lea ecx, [ebp - 0x28]
call fcn.0043d47d
mov eax, dword [ebp + 8]
push 1
mov dword [ebp - 8], eax
push 0x2c
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x84]
call fcn.0044e524
push 0
lea ecx, [ebp - 0x30]
push ecx
push eax
call fcn.0043fe29
mov esi, dword [ebp - 0x30]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor ebx, ebx
test ax, ax
mov byte [ebp - 0x15], 0
mov byte [ebp - 0x16], 0
mov byte [ebp - 0xa], 0
mov ecx, esi
je 0x457257
call fcn.00482120
test al, al
je 0x457241
mov ebx, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x457236
test ebx, ebx
je 0x457257
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 0x4572da
cmp word [esi], 0x2a
jne 0x4572da
cmp word [eax + 2], 0x2d
je 0x4572da
push 6
lea eax, [ebp + 8]
push eax
push str.nobom
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x45728a
mov byte [ebp - 0x16], 1
jmp 0x4572ce
push 0xa
lea eax, [ebp + 8]
push eax
push str.transonly
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4572a7
mov byte [ebp - 0x15], 1
jmp 0x4572ce
push 3
lea eax, [ebp + 8]
push eax
push 0x4acd24
call fcn.0043f1bd
add esp, 0xc
test al, al
je 0x4572c4
mov byte [ebp - 0xa], 1
jmp 0x4572ce
lea eax, [ebp + 8]
push eax
call fcn.0040507c
pop ecx
mov eax, dword [ebp + 8]
cmp word [eax], 0x2a
mov esi, dword [ebp - 0x30]
je 0x457266
xor edi, edi
cmp ebx, edi
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x65], 0
mov byte [ebp - 0x17], 0
mov byte [ebp + 0xb], 0
mov byte [ebp - 0x66], 0
mov byte [ebp - 9], 0
je 0x457318
push ebx
lea ecx, [ebp - 0x1c]
call fcn.004457e4
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x30], eax
call fcn.00437960
mov esi, dword [ebp - 0x30]
cmp byte [ebp - 0xa], 0
je 0x457797
mov ecx, dword [ebp - 0x44]
push edi
lea eax, [ebp - 0x30]
push eax
call fcn.00402d87
mov eax, dword [ebp - 8]
cmp word [eax], 0x2c
jne 0x45733c
add dword [ebp - 8], 2
lea eax, [ebp - 8]
push eax
call fcn.004379a9
mov eax, dword [ebp - 8]
movzx eax, word [eax]
cmp ax, di
pop ecx
mov dword [ebp - 0x14], eax
je 0x45751e
add dword [ebp - 8], 2
lea eax, [ebp - 8]
push eax
call fcn.004379a9
mov eax, dword [ebp - 8]
cmp word [eax], 0x2c
pop ecx
jne 0x457373
add dword [ebp - 8], 2
or dword [ebp - 0x4c], 0xffffffff
or dword [ebp - 0x48], 0xffffffff
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x10], 1
call fcn.004050d3
test eax, eax
pop ecx
pop ecx
jle 0x45751e
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004050b3
test eax, eax
pop ecx
pop ecx
jle 0x45751e
cmp dword [ebp - 0x10], edi
jle 0x45751e
cmp dword [ebp - 0x10], 8
jg 0x45751e
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004050d3
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 8]
push eax
call fcn.004050d3
add esp, 0x10
mov esi, 0x4beb4c
push esi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ecx, dword [ebp - 0x44]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp - 0x30]
call fcn.0040ef74
mov ecx, eax
cmp ecx, edi
jne 0x457413
push esi
jmp 0x457518
cmp dword [ebp - 0x48], edi
mov ebx, dword [ecx + 0x10]
jg 0x45742b
jl 0x457422
cmp dword [ebp - 0x4c], edi
ja 0x45742b
mov eax, ebx
cdq
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
mov esi, dword [ebp - 0x74]
mov eax, ebx
cdq
cmp esi, edx
mov esi, dword [ebp - 0x78]
jl 0x457446
jg 0x457513
cmp esi, eax
ja 0x457513
mov eax, dword [ecx + 4]
sub ebx, esi
cmp ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], ebx
jle 0x457456
mov ebx, dword [ebp - 0x4c]
cmp ebx, edi
jle 0x457513
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
add esi, eax
cmp dx, 0x2d
jne 0x4574c6
mov eax, dword [ebp - 0x38]
neg ecx
adc eax, edi
neg eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0x2b
mov eax, ebx
cdq
idiv dword [ebp - 0x10]
and dword [ebp - 0x1c], 0
mov edi, esi
xor eax, eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x34], ecx
mov byte [ebp - 9], cl
mov byte [ebp + 0xb], cl
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 1], al
sub edi, edx
add edi, ebx
cmp word [ebp - 0x14], 0x3e
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x20], edi
jne 0x45757e
mov byte [ebp - 1], 2
jmp 0x457589
cmp dx, 0x3c
jne 0x4574e1
mov edx, dword [ebp - 0x38]
neg ecx
adc edx, edi
neg edx
push 0x3e
mov dword [ebp - 0x38], edx
pop edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x14], edx
cmp dx, 0x2b
je 0x4574f9
cmp dx, 0x5e
je 0x4574f9
cmp dx, 0x23
je 0x4574ff
cmp dx, 0x3e
jne 0x457513
cmp dx, 0x23
jne 0x457482
cmp ebx, dword [ebp - 0x1c]
mov edx, esi
mov dword [ebp + 8], edx
lea edi, [ecx + eax]
jle 0x45750f
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
jg 0x457528
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x457fa9
mov esi, ebx
and esi, 3
mov eax, edi
sub eax, esi
add eax, ebx
cmp edi, eax
jae 0x45754c
mov ebx, dword [edx]
mov ecx, dword [edi]
mov dword [edi], ebx
add edi, 4
mov dword [edx], ecx
add edx, 4
cmp edi, eax
jb 0x457537
mov dword [ebp + 8], edx
test esi, esi
jle 0x457785
push esi
push dword [ebp + 8]
lea eax, [ebp - 0x60]
push eax
call fcn.004125f9
push esi
push edi
push dword [ebp + 8]
call fcn.004125f9
push esi
lea eax, [ebp - 0x60]
push eax
push edi
call fcn.004125f9
add esp, 0x24
jmp 0x457785
cmp word [ebp - 0x14], 0x5e
jne 0x457589
mov byte [ebp - 1], 1
cmp dword [ebp - 0x10], 8
jl 0x457621
and byte [ebp + 0xb], 0x3f
mov al, 0x40
sub al, byte [ebp + 0xb]
cmp esi, edi
mov byte [ebp - 0x16], al
jae 0x457732
movzx edx, byte [ebp - 1]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x24]
sub edx, 0
je 0x45760a
dec edx
je 0x4575f9
dec edx
jne 0x457615
mov edi, dword [esi]
mov ebx, dword [esi + 4]
movzx ecx, al
mov eax, edi
mov edx, ebx
call fcn.00492250
mov ecx, edx
mov dword [ebp - 0x70], ecx
movzx ecx, byte [ebp - 9]
mov dword [ebp - 0x60], eax
mov eax, edi
mov edx, ebx
call fcn.00492320
mov ecx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x20]
or ecx, eax
mov eax, dword [ebp - 0x70]
or eax, edx
mov dword [esi + 4], eax
mov al, byte [ebp - 0x16]
mov dword [esi], ecx
jmp 0x457612
cmp word [ebp - 0x14], 0x5e
jne 0x457615
xor dword [esi], ecx
mov ecx, dword [ebp - 0x38]
xor dword [esi + 4], ecx
jmp 0x457612
add dword [esi], ecx
mov ecx, dword [ebp - 0x38]
adc dword [esi + 4], ecx
mov ecx, dword [ebp - 0x3c]
add esi, dword [ebp - 0x10]
cmp esi, edi
jb 0x4575ae
jmp 0x457732
cmp dword [ebp - 0x10], 4
jl 0x45767f
and byte [ebp + 0xb], 0x1f
mov dl, 0x20
sub dl, byte [ebp + 0xb]
cmp esi, edi
jae 0x457732
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sub eax, 0
je 0x45766e
dec eax
je 0x457660
dec eax
jne 0x457673
mov eax, dword [esi]
mov ebx, eax
mov cl, dl
shl ebx, cl
mov cl, byte [ebp + 0xb]
shr eax, cl
or ebx, eax
mov dword [esi], ebx
jmp 0x457673
cmp word [ebp - 0x14], 0x5e
jne 0x457673
mov eax, dword [ebp - 0x64]
xor dword [esi], eax
jmp 0x457673
mov eax, dword [ebp - 0x64]
add dword [esi], eax
add esi, dword [ebp - 0x10]
cmp esi, edi
jb 0x45763f
jmp 0x457732
cmp dword [ebp - 0x10], 2
jl 0x4576e3
and byte [ebp + 0xb], 0xf
mov dl, 0x10
sub dl, byte [ebp + 0xb]
cmp esi, edi
jae 0x457732
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sub eax, 0
je 0x4576d3
dec eax
je 0x4576c3
dec eax
jne 0x4576da
xor eax, eax
mov ax, word [esi]
mov cl, dl
mov ebx, eax
shl ebx, cl
mov cl, byte [ebp + 0xb]
shr ax, cl
or ebx, eax
mov word [esi], bx
jmp 0x4576da
cmp word [ebp - 0x14], 0x5e
jne 0x4576da
mov ax, word [ebp - 0x34]
xor word [esi], ax
jmp 0x4576da
mov ax, word [ebp - 0x34]
add word [esi], ax
add esi, dword [ebp - 0x10]
cmp esi, edi
jb 0x45769d
jmp 0x457732
and byte [ebp + 0xb], 7
mov dl, 8
sub dl, byte [ebp + 0xb]
cmp esi, edi
jae 0x457732
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sub eax, 0
je 0x457726
dec eax
je 0x457718
dec eax
jne 0x45772b
mov al, byte [esi]
mov bl, al
mov cl, dl
shl bl, cl
mov cl, byte [ebp + 0xb]
shr al, cl
or bl, al
mov byte [esi], bl
jmp 0x45772b
cmp word [ebp - 0x14], 0x5e
jne 0x45772b
mov al, byte [ebp - 9]
xor byte [esi], al
jmp 0x45772b
mov al, byte [ebp - 9]
add byte [esi], al
add esi, dword [ebp - 0x10]
cmp esi, edi
jb 0x4576f7
mov edi, dword [ebp - 0x5c]
test edi, edi
jle 0x45776d
cmp word [ebp - 0x14], 0x3e
je 0x45776d
push edi
lea eax, [ebp - 0x54]
push esi
push eax
call fcn.004125f9
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x10]
lea edi, [ebp + edi - 0x54]
add esp, 0xc
and dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], esi
lea esi, [ebp - 0x54]
mov dword [ebp - 0x20], edi
jmp 0x457589
cmp dword [ebp - 0x1c], 0
je 0x457785
push dword [ebp - 0x1c]
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x40]
call fcn.004125f9
add esp, 0xc
push 0x4beb4c
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
jmp 0x457fa9
mov ecx, dword [ebp - 8]
push 0x2c
pop ebx
cmp word [ecx], bx
lea eax, [ecx + 2]
mov dword [ebp - 0x60], eax
jne 0x4577ce
push 1
mov dword [ebp - 8], eax
push ebx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x84]
call fcn.0044e524
push edi
lea ecx, [ebp - 0x58]
push ecx
push eax
call fcn.0043fee5
mov esi, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x4577fd
add dword [ebp - 8], 2
push 1
push ebx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x84]
call fcn.0044e524
push edi
lea ecx, [ebp - 0x6c]
push ecx
push eax
call fcn.0043fe29
mov esi, dword [ebp - 0x30]
add esp, 0xc
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x45782c
add dword [ebp - 8], 2
push 1
push ebx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x84]
call fcn.0044e524
push edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call fcn.0043fe29
mov esi, dword [ebp - 0x30]
add esp, 0xc
mov ax, word [esi]
cmp ax, di
je 0x457fa6
mov ecx, dword [ebp - 0x58]
cmp word [ecx], di
je 0x457fa6
mov ecx, dword [ebp - 0x6c]
cmp word [ecx], di
je 0x457fa6
mov edx, dword [ebp - 0x28]
cmp word [edx], di
je 0x457fa6
xor ebx, ebx
push 0x2a
mov edi, ecx
pop ecx
cmp ax, cx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x40], ebx
mov byte [ebp - 1], bl
jne 0x4578af
cmp word [esi + 2], cx
jne 0x4578a0
add esi, 4
cmp word [esi], cx
mov byte [ebp - 0x17], 2
mov byte [ebp - 0x29], al
jne 0x4578b2
inc esi
inc esi
mov byte [ebp - 0x17], 3
jmp 0x4578b2
cmp ax, cx
jne 0x4578af
mov al, byte [esi]
mov byte [ebp - 0x29], al
add esi, 2
jmp 0x4578b2
mov al, byte [ebp - 0x65]
cmp word [esi], 0x2d
jne 0x4578bc
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x45751e
push esi
push 0x4acd20
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x4578de
mov byte [ebp - 1], 1
jmp 0x4579f1
push esi
push str.ANSI
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x4578f7
mov dword [ebp - 0x10], ebx
jmp 0x4579f1
push esi
push 0x4acd1c
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457914
mov dword [ebp - 0x10], 0x3a8
jmp 0x4579f1
push esi
push str.BIG5
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457931
mov dword [ebp - 0x10], 0x3b6
jmp 0x4579f1
push esi
push str.UTF8
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45794e
mov dword [ebp - 0x10], 0xfde9
jmp 0x4579f1
push esi
push str.UTF7
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x45796b
mov dword [ebp - 0x10], 0xfde8
jmp 0x4579f1
push esi
push str.UNICODE
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457985
mov dword [ebp - 0x14], 0x4b0
jmp 0x4579f1
push esi
push 0x4a4aa0
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x45797c
push esi
push str.UNICODEB
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x4579b0
mov dword [ebp - 0x14], 0x4b1
jmp 0x4579f1
push esi
push str.UNIB
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x4579a7
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.0041270e
add esp, 4
test al, al
je 0x4579df
push esi
call fcn.0043df72
pop ecx
mov dword [ebp - 0x10], eax
jmp 0x4579f1
cmp cx, bx
jne 0x45751e
xor eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x6c]
mov ax, word [ecx]
cmp ax, 0x2a
jne 0x457a1e
cmp word [ecx + 2], ax
jne 0x457a0e
mov byte [ebp + 0xb], al
mov byte [ebp - 9], al
lea edi, [ecx + 4]
jmp 0x457a21
cmp ax, 0x2a
jne 0x457a1e
mov al, byte [ecx]
mov byte [ebp + 0xb], al
lea edi, [ecx + 2]
jmp 0x457a21
mov al, byte [ebp - 0x66]
cmp word [edi], 0x2d
jne 0x457a2b
mov al, byte [edi]
inc edi
inc edi
test al, al
je 0x45751e
push edi
push str.ANSI
call fcn.00438bce
test al, al
pop ecx
pop ecx
mov esi, 0x4a9dc0
mov ebx, 0x4a9dc4
je 0x457a57
and dword [ebp - 0x38], 0
jmp 0x457b6c
push edi
push 0x4acd1c
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457a74
mov dword [ebp - 0x38], 0x3a8
jmp 0x457b6c
push edi
push str.BIG5
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457a91
mov dword [ebp - 0x38], 0x3b6
jmp 0x457b6c
push edi
push str.UTF8
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457abc
mov dword [ebp - 0x38], 0xfde9
mov dword [ebp - 0x40], 0x4a9dc8
mov dword [ebp - 0x5c], 3
jmp 0x457b6c
push edi
push str.UTF7
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457ad9
mov dword [ebp - 0x38], 0xfde8
jmp 0x457b6c
push edi
push str.UNICODE
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457afd
mov dword [ebp - 0x24], 0x4b0
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x5c], 2
jmp 0x457b6c
push edi
push 0x4a4aa0
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x457aea
push edi
push str.UNICODEB
call fcn.00438bce
test al, al
pop ecx
pop ecx
jne 0x457b30
push edi
push str.UNIB
call fcn.00438bce
test al, al
pop ecx
pop ecx
je 0x457b3c
mov dword [ebp - 0x24], 0x4b1
mov dword [ebp - 0x40], ebx
jmp 0x457af4
xor ecx, ecx
mov cx, word [edi]
push ecx
call fcn.0041270e
add esp, 4
test al, al
je 0x457b5a
push edi
call fcn.0043df72
pop ecx
mov dword [ebp - 0x38], eax
jmp 0x457b6c
test cx, cx
jne 0x45751e
xor eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x64], eax
cmp byte [ebp - 0x16], 0
je 0x457b76
and dword [ebp - 0x40], 0
xor ebx, ebx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x48], ebx
call fcn.0043d356
xor edi, edi
cmp byte [ebp - 0x29], 0
mov byte [ebp - 0xa], 0
jne 0x457d39
mov eax, dword [ebp - 0x60]
xor esi, esi
inc esi
push esi
mov dword [ebp - 8], eax
push 0x2c
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x34], ebx
call fcn.0044e524
push ebx
lea ecx, [ebp - 0x58]
push ecx
push eax
call fcn.0043fe29
push dword [ebp - 0x58]
call fcn.0041113a
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp - 0x34]
call fcn.0040511c
mov edi, dword [ebp - 0x34]
cmp edi, ebx
jne 0x457c04
lea ecx, [ebp - 0x34]
call fcn.00402b5a
lea ecx, [ebp - 0x50]
call fcn.00437960
lea ecx, [ebp - 0x48]
call fcn.00402b5a
jmp 0x457fa9
push 2
push ebx
push ebx
push edi
call fcn.00438aec
push 1
push ebx
push ebx
push edi
call fcn.00438aec
push ebx
push ebx
mov esi, eax
push ebx
push edi
mov dword [ebp - 8], esi
call fcn.00438aec
add esp, 0x30
add esi, 0xa
push esi
lea ecx, [ebp - 0x50]
call fcn.0043d398
mov esi, dword [ebp - 0x50]
push ebx
lea eax, [ebp - 0x70]
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 - 0x70], 0xffffffff
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, dword [ebp - 0x70]
cmp eax, ebx
mov edi, eax
jge 0x457c6d
lea ecx, [ebp - 0x34]
call fcn.00402b5a
jmp 0x457f96
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 - 0x20], ebx
jne 0x457c8c
cmp dword [ebp - 0x14], 0x4b0
jne 0x457cb6
push 2
push 0x4a9dc0
push esi
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x457cb0
mov dword [ebp - 0x14], 0x4b0
mov dword [ebp - 0x20], 2
jmp 0x457d0d
cmp byte [ebp - 1], 0
jne 0x457cbf
cmp dword [ebp - 0x14], 0x4b1
jne 0x457ce2
push 2
push 0x4a9dc4
push esi
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x457cdc
mov dword [ebp - 0x14], 0x4b1
jmp 0x457ca7
cmp byte [ebp - 1], 0
jne 0x457ceb
cmp dword [ebp - 0x10], 0xfde9
jne 0x457d25
push 3
push 0x4a9dc8
push esi
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x457d25
mov dword [ebp - 0x10], 0xfde9
mov dword [ebp - 0x20], 3
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
sub eax, ecx
add eax, 3
push eax
add ecx, esi
push ecx
push esi
call fcn.004125af
add esp, 0xc
sub edi, dword [ebp - 0x20]
jns 0x457d2c
xor edi, edi
lea ecx, [ebp - 0x34]
call fcn.00402b5a
jmp 0x457e18
cmp byte [ebp - 0x17], 0
je 0x457dd4
mov ecx, dword [ebp - 0x44]
xor esi, esi
push esi
lea eax, [ebp - 0x58]
push eax
call fcn.00402d87
mov ecx, dword [ebp - 0x44]
push esi
push 0xffffffffffffffff
push esi
push dword [ebp - 0x58]
call fcn.0040ef74
mov ebx, eax
cmp ebx, esi
je 0x457db5
cmp byte [ebp - 0x17], 3
jne 0x457d83
push dword [ebx + 4]
lea eax, [ebp - 0x50]
push eax
call fcn.00441488
pop ecx
pop ecx
mov edi, eax
mov byte [ebp - 0xa], 2
jmp 0x457dbf
mov edi, dword [ebx + 0x10]
lea eax, [edi + 8]
push eax
lea ecx, [ebp - 0x50]
call fcn.0043d398
mov esi, dword [ebp - 0x50]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.0048f7a0
push edi
push dword [ebx + 4]
push esi
call fcn.004125f9
add esp, 0x18
mov byte [ebp - 0xa], 1
jmp 0x457dc2
push 8
lea ecx, [ebp - 0x50]
call fcn.0043d398
mov esi, dword [ebp - 0x50]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.0048f7a0
add esp, 0xc
jmp 0x457e18
cmp dword [ebp - 0x1c], ebx
je 0x457e01
push 0xffffffffffffffff
push dword [ebp - 0x58]
lea ecx, [ebp - 0x50]
call fcn.0043d5a1
push dword [ebp - 0x58]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov edi, eax
shl edi, 1
lea eax, [edi + 8]
push eax
lea ecx, [ebp - 0x50]
call fcn.0043d398
jmp 0x457e11
push dword [ebp - 0x58]
lea eax, [ebp - 0x50]
push eax
call fcn.00441488
pop ecx
pop ecx
mov edi, eax
mov esi, dword [ebp - 0x50]
mov byte [ebp - 0xa], 2
test edi, edi
jl 0x457f96
cmp byte [ebp - 1], 0
je 0x457ea3
cmp byte [ebp - 0xa], 0
je 0x457ea3
push 2
push 0x4a9dc0
push esi
xor ebx, ebx
call fcn.00437a2b
add esp, 0xc
test eax, eax
push 2
jne 0x457e4d
mov dword [ebp - 0x14], 0x4b0
jmp 0x457e87
push 0x4a9dc4
push esi
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x457e6a
mov dword [ebp - 0x14], 0x4b1
push 2
jmp 0x457e87
push 3
push 0x4a9dc8
push esi
call fcn.00437a2b
add esp, 0xc
test eax, eax
jne 0x457e9d
mov dword [ebp - 0x10], 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.004125af
add esp, 0xc
sub edi, ebx
jns 0x457ea3
xor edi, edi
lea ecx, [ebp - 8]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x60], esi
call fcn.0043d47d
mov ebx, dword [ebp - 0x38]
cmp ebx, dword [ebp - 0x10]
jne 0x457f42
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x14]
jne 0x457f42
cmp byte [ebp - 9], 0
je 0x457ee3
push 0
lea eax, [ebp - 0x28]
push eax
push edi
push esi
push dword [ebp - 0x28]
push dword [ebp - 0x44]
call fcn.00448a7d
add esp, 0x18
jmp 0x457f25
cmp byte [ebp + 0xb], 0
jne 0x457ef5
push edi
push esi
lea ecx, [ebp - 0x48]
call fcn.004378c3
jmp 0x457f25
cmp dword [ebp - 0x64], 0
jne 0x457f0e
push edi
lea eax, [ebp - 8]
push esi
push eax
call fcn.00441401
add esp, 0xc
push dword [ebp - 8]
jmp 0x457f1a
cmp dword [ebp - 0x1c], 0
je 0x457f19
push dword [ebp - 0x58]
jmp 0x457f1a
push esi
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
call fcn.0043cd78
lea ecx, [ebp - 8]
call fcn.00437960
lea ecx, [ebp - 0x50]
call fcn.00437960
lea ecx, [ebp - 0x48]
call fcn.00402b5a
jmp 0x457790
cmp dword [ebp - 0x14], 0x4b1
jne 0x457f5e
push edi
push esi
mov dword [ebp - 0x14], 0x4b0
call fcn.0043b955
pop ecx
pop ecx
and edi, 0xfffffffe
cmp byte [ebp + 0xb], 0
jne 0x457fdd
push dword [ebp - 0x28]
call fcn.0041113a
pop ecx
push 0
push 0x80
push 4
push 0
push 7
push 0x40000000
push eax
lea ecx, [ebp - 0x48]
call fcn.0040511c
cmp dword [ebp - 0x48], 0
jne 0x457fdd
lea ecx, [ebp - 8]
call fcn.00437960
lea ecx, [ebp - 0x50]
call fcn.00437960
lea ecx, [ebp - 0x48]
call fcn.00402b5a
xor esi, esi
inc esi
lea ecx, [ebp - 0x28]
call fcn.00437960
lea ecx, [ebp - 0x6c]
call fcn.00437960
lea ecx, [ebp - 0x58]
call fcn.00437960
lea ecx, [ebp - 0x30]
call fcn.00437960
lea ecx, [ebp - 0x84]
call fcn.00437960
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8
and dword [ebp - 0x1c], 0
mov eax, 0x3a8
cmp ebx, eax
mov ebx, 0x3b6
jne 0x457ff4
cmp dword [ebp - 0x10], ebx
je 0x457ffe
cmp dword [ebp - 0x10], eax
jne 0x45806c
cmp dword [ebp - 0x38], ebx
jne 0x45806c
cmp byte [ebp - 0x15], 0
je 0x458008
mov byte [ebp - 0x15], 3
lea ecx, [ebp - 0x34]
call fcn.0043d356
xor eax, eax
cmp dword [ebp - 0x38], ebx
sete al
push eax
lea eax, [ebp - 0x34]
push eax
push esi
call fcn.00441515
mov eax, esi
mov esi, dword [ebp - 0x34]
add esp, 0xc
push esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x34], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
cmp byte [ebp - 0x15], 3
mov edi, eax
mov dword [ebp - 0x20], esi
jne 0x458064
cmp byte [ebp + 0xb], 0
jne 0x458064
test edi, edi
jle 0x458057
push edi
push esi
lea ecx, [ebp - 0x48]
call fcn.004378c3
lea ecx, [ebp - 0x34]
call fcn.00437960
jmp 0x458204
lea ecx, [ebp - 0x34]
call fcn.00437960
mov ebx, edi
shr ebx, 1
cmp dword [ebp - 0x14], 0
jne 0x4580af
lea ebx, [edi + 0xa]
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp - 8]
call fcn.0043d4c2
push ebx
push dword [ebp - 8]
push edi
push esi
push 0
push dword [ebp - 0x10]
call dword [0x4bdb9c]
mov ebx, eax
test ebx, ebx
jge 0x45809e
xor ebx, ebx
mov eax, dword [ebp - 8]
lea edi, [ebx + ebx]
and word [edi + eax], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x24], 0x4b1
jne 0x4580c3
push edi
push dword [ebp - 0x20]
call fcn.0043b955
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp - 0x24], eax
jle 0x458154
cmp byte [ebp - 9], al
je 0x4580f1
xor esi, esi
push esi
lea eax, [ebp - 0x28]
push eax
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x28]
push dword [ebp - 0x44]
call fcn.00448a7d
add esp, 0x18
jmp 0x458214
cmp byte [ebp + 0xb], 0
jne 0x45811c
cmp edi, eax
jle 0x458204
cmp dword [ebp - 0x40], 0
je 0x458113
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x48]
push dword [ebp - 0x40]
call fcn.004378c3
push edi
push dword [ebp - 0x20]
jmp 0x4581b9
cmp dword [ebp - 0x64], eax
jne 0x458159
lea ecx, [ebp + 8]
call fcn.0043d47d
push ebx
push dword [ebp - 0x20]
lea eax, [ebp + 8]
push eax
call fcn.00441462
mov ecx, dword [ebp - 0x44]
add esp, 0xc
push dword [ebp + 8]
push dword [ebp - 0x28]
call fcn.0043cd78
lea ecx, [ebp + 8]
call fcn.00437960
jmp 0x458204
cmp dword [ebp - 0x64], eax
je 0x458161
push dword [ebp - 0x60]
jmp 0x4581f9
shr edi, 1
lea esi, [edi + edi*2]
lea esi, [esi + esi + 0xa]
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0043d398
mov ebx, dword [ebp - 0x1c]
xor eax, eax
push eax
push eax
push esi
push ebx
push edi
push dword [ebp - 0x20]
push eax
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
mov esi, eax
test esi, esi
jge 0x458195
xor esi, esi
cmp byte [ebp + 0xb], 0
mov byte [ebx + esi], 0
jne 0x4581c3
test esi, esi
jle 0x458204
cmp dword [ebp - 0x40], 0
je 0x4581b7
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x48]
push dword [ebp - 0x40]
call fcn.004378c3
push esi
push ebx
lea ecx, [ebp - 0x48]
call fcn.004378c3
jmp 0x458204
cmp byte [ebp - 9], 0
je 0x4581e8
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
push 0
lea ecx, [ebp - 0x28]
push ecx
push eax
push ebx
push dword [ebp - 0x28]
push dword [ebp - 0x44]
call fcn.00448a7d
add esp, 0x18
jmp 0x458204
push esi
lea eax, [ebp - 8]
push ebx
push eax
call fcn.00441401
add esp, 0xc
push dword [ebp - 8]
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
call fcn.0043cd78
xor esi, esi
cmp dword [ebp - 0x48], esi
je 0x458214
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp - 0x1c]
call fcn.00437960
lea ecx, [ebp - 8]
call fcn.00437960
jmp 0x457bef