Function at 0x459883
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xc0
push ebx
push esi
push edi
mov dword [ebp + 0x34], ecx
push ecx
lea ecx, [ebp - 0x44]
call fcn.00441f45
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
pop ecx
lea ecx, [ebp + 0x2c]
call fcn.0043fd9a
lea ecx, [ebp + 0xc]
call fcn.0043fd9a
lea ecx, [ebp - 0x24]
call fcn.0043fd9a
lea ecx, [ebp + 0x44]
call fcn.0043fd9a
mov eax, dword [ebp + 0x78]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x44]
call fcn.00451235
push 0
lea ecx, [ebp + 0x2c]
push ecx
push eax
call fcn.004429d8
mov esi, dword [ebp + 0x2c]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor edi, edi
test ax, ax
mov byte [ebp + 0x53], 0
mov byte [ebp + 0x50], 0
mov byte [ebp + 0x67], 0
mov ecx, esi
je 0x45992a
call fcn.0040ea2b
test al, al
je 0x459914
mov edi, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x459909
test edi, edi
je 0x45992a
and word [edi], ax
mov esi, dword [ebp + 0x2c]
inc edi
inc edi
test edi, edi
mov eax, esi
mov dword [ebp + 0x78], eax
je 0x4599ad
cmp word [esi], 0x2a
jne 0x4599ad
cmp word [eax + 2], 0x2d
je 0x4599ad
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45995d
mov byte [ebp + 0x50], 1
jmp 0x4599a1
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45997a
mov byte [ebp + 0x53], 1
jmp 0x4599a1
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b795c
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x459997
mov byte [ebp + 0x67], 1
jmp 0x4599a1
lea eax, [ebp + 0x78]
push eax
call fcn.00405444
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0x2c]
je 0x459939
xor ebx, ebx
cmp edi, ebx
mov byte [ebp + 0x33], 0
mov byte [ebp - 0x11], 0
mov byte [ebp + 0x52], 0
mov byte [ebp + 0x7b], 0
mov byte [ebp - 0x12], 0
mov byte [ebp + 0x51], 0
je 0x4599eb
push edi
lea ecx, [ebp + 0x54]
call fcn.00448399
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x54], ecx
lea ecx, [ebp + 0x54]
mov dword [ebp + 0x2c], eax
call fcn.00439cfd
mov esi, dword [ebp + 0x2c]
cmp byte [ebp + 0x67], 0
je 0x45a254
mov ecx, dword [ebp + 0x34]
push ebx
lea eax, [ebp + 0x2c]
push eax
call fcn.00402e5f
mov ecx, dword [ebp + 0x34]
xor esi, esi
inc esi
push esi
push ebx
lea eax, [ebp + 0x44]
push eax
push dword [ebp + 0x68]
call fcn.0044ed7d
mov eax, dword [ebp + 0x44]
push 0x2c
pop edx
cmp word [eax], dx
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x28], ebx
jne 0x459a33
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.00439c95
mov eax, dword [ebp + 0x68]
xor edi, edi
mov di, word [eax]
cmp di, bx
pop ecx
mov dword [ebp + 0x5c], edi
je 0x45a24a
cmp di, 0x2b
jne 0x459a66
lea ecx, [eax + 2]
cmp word [ecx], di
jne 0x459a84
mov edi, 0x3a3
jmp 0x459a7f
cmp di, 0x2a
jne 0x459a84
lea ecx, [eax + 2]
cmp word [ecx], di
jne 0x459a84
mov edi, 0x3a0
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], ebx
mov eax, ecx
mov dword [ebp + 0x5c], edi
inc eax
inc eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.00439c95
cmp di, 0x3a3
mov eax, dword [ebp + 0x68]
pop ecx
je 0x459aa4
cmp di, 0x3a0
jne 0x459ac3
cmp word [eax], dx
je 0x459ac8
mov dword [ebp + 0x28], eax
push edx
lea eax, [ebp + 0x68]
call fcn.0043f8e8
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
pop ecx
je 0x459acd
mov word [eax], bx
jmp 0x459ac8
cmp word [eax], dx
jne 0x459acd
inc eax
inc eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x20]
push eax
or esi, 0xffffffff
lea eax, [ebp + 0x68]
push eax
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp + 4], 0xfffe0000
mov dword [ebp + 8], esi
mov dword [ebp + 0x60], 1
call fcn.0040547b
test eax, eax
pop ecx
pop ecx
jle 0x45a24a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040545b
test eax, eax
pop ecx
pop ecx
jle 0x45a24a
cmp dword [ebp + 0x60], ebx
jle 0x45a24a
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040547b
cmp dword [ebp - 0x1c], ebx
pop ecx
pop ecx
jl 0x45a24a
jg 0x459b59
cmp dword [ebp - 0x20], ebx
jb 0x45a24a
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040547b
pop ecx
pop ecx
mov ebx, 0x4c9c14
push ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ecx, dword [ebp + 0x34]
push 0
push esi
push 0
push dword [ebp + 0x2c]
call fcn.0040fd4e
mov esi, eax
test esi, esi
jne 0x459b90
push ebx
jmp 0x45a244
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], ecx
jg 0x45a23f
jl 0x459bad
cmp dword [ebp - 0x20], eax
jae 0x45a23f
test ecx, ecx
jle 0x45a23f
cmp dword [ebp - 4], 0
jg 0x459bc9
jl 0x459bc3
cmp dword [ebp - 8], 0
ja 0x459bc9
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
sub ecx, dword [ebp - 0x20]
mov esi, dword [esi + 4]
mov eax, ecx
cdq
cmp dword [ebp - 4], edx
mov dword [ebp], esi
jl 0x459be7
jg 0x459be1
cmp dword [ebp - 8], eax
jbe 0x459be7
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
cmp ecx, eax
mov dword [ebp + 0x1c], ecx
jle 0x459bf4
mov dword [ebp + 0x1c], eax
xor ebx, ebx
cmp dword [ebp + 0x1c], ebx
jle 0x45a23f
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x24]
add esi, edx
cmp di, 0x2d
jne 0x459c11
push 0x2b
jmp 0x459c19
cmp di, 0x3c
jne 0x459c2c
push 0x3e
mov eax, dword [ebp + 0x20]
neg eax
adc ecx, ebx
neg ecx
pop edi
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x5c], edi
mov eax, edi
or eax, 0x20
cmp ax, 0x68
push 0x6f
pop ebx
je 0x459c45
cmp ax, 0x6e
je 0x459c45
cmp ax, bx
jne 0x459c4a
mov edi, ebx
mov dword [ebp + 0x5c], edi
cmp di, 0x2b
je 0x459c7f
cmp di, 0x5e
je 0x459c7f
cmp di, 0x23
je 0x459c7f
cmp di, 0x3e
je 0x459c7f
cmp di, bx
je 0x459c7f
cmp di, 0x2e
je 0x459c7f
cmp di, 0x3a3
je 0x459c7f
cmp di, 0x3a0
jne 0x45a23f
cmp di, bx
mov dword [ebp + 0x78], edx
jne 0x459c9b
mov eax, edx
cdq
cmp edx, ecx
jl 0x459c9b
jg 0x459c95
cmp eax, dword [ebp + 0x20]
jbe 0x459c9b
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x78], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040547b
xor eax, eax
cmp dword [ebp - 0x10], eax
pop ecx
pop ecx
jne 0x459cc2
cmp dword [ebp - 0xc], eax
jne 0x459cc5
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], eax
jl 0x459cd6
jg 0x459cce
cmp dword [ebp - 0x10], eax
jbe 0x459cd6
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
jmp 0x459ce3
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
neg edi
adc ebx, 0
neg ebx
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040547b
cmp dword [ebp + 8], 0
pop ecx
pop ecx
jg 0x459d3f
jl 0x459d00
cmp dword [ebp + 4], 0
ja 0x459d3f
cmp dword [ebp + 4], 0xfffe0000
jne 0x459d0f
cmp dword [ebp + 8], 0xffffffff
je 0x459d26
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp + 0x78]
push ebx
cdq
push edi
push edx
push eax
call fcn.0049a840
cdq
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
cmp dword [ebp + 8], 0
jg 0x459d3f
jl 0x459d34
cmp dword [ebp + 4], 0
ja 0x459d3f
and dword [ebp + 8], 0
mov dword [ebp + 4], 1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040547b
cmp dword [ebp - 0x2c], 0
pop ecx
pop ecx
jne 0x459d66
cmp dword [ebp - 0x28], 0
jne 0x459d66
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x60]
and eax, 3
sub ecx, eax
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp]
sar ebx, 8
add eax, ecx
test ebx, ebx
mov dword [ebp - 0x18], esi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x40], ebx
jg 0x459d98
xor ebx, ebx
inc ebx
mov dword [ebp + 0x40], ebx
movzx edi, byte [ebp + 0x60]
mov eax, dword [ebp + 0x1c]
cdq
idiv edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x5c]
cmp ax, 0x3a0
mov dword [ebp - 0x48], edx
jne 0x459dba
mov byte [ebp + 0x6f], 5
jmp 0x459de6
cmp ax, 0x3a3
jne 0x459dc6
mov byte [ebp + 0x6f], 4
jmp 0x459de6
cmp ax, 0x2e
jne 0x459dd2
mov byte [ebp + 0x6f], 3
jmp 0x459de6
cmp ax, 0x3e
jne 0x459dde
mov byte [ebp + 0x6f], 2
jmp 0x459de6
cmp ax, 0x5e
sete byte [ebp + 0x6f]
mov eax, edi
cdq
idiv ebx
lea ecx, [eax - 1]
imul ecx, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp + 0x58], ecx
mov ecx, eax
imul ecx, ebx
mov dword [ebp + 0x3c], eax
mov eax, edi
sub eax, ecx
add dword [ebp + 4], 0xffffffff
mov dword [ebp + 0x68], eax
adc dword [ebp + 8], 0xffffffff
js 0x45a20f
jle 0x45a205
cmp word [ebp + 0x5c], 0x23
jne 0x459e76
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp - 0x4c]
lea ecx, [edi + eax]
jmp 0x459e3c
mov edx, dword [esi]
mov eax, dword [edi]
mov dword [edi], edx
add edi, 4
mov dword [esi], eax
add esi, 4
cmp edi, ecx
jb 0x459e2e
cmp dword [ebp + 0x38], 0
jle 0x45a1e2
push dword [ebp + 0x38]
lea eax, [ebp - 0x50]
push esi
push eax
call fcn.00413203
push dword [ebp + 0x38]
push edi
push esi
call fcn.00413203
push dword [ebp + 0x38]
lea eax, [ebp - 0x50]
push eax
push edi
call fcn.00413203
add esp, 0x24
jmp 0x45a1e2
cmp word [ebp + 0x5c], 0x6f
jne 0x459f13
cmp ebx, 1
mov eax, dword [ebp + 0x18]
jg 0x459ec3
dec eax
js 0x45a1e2
mov edi, dword [ebp + 0x3c]
dec edi
inc eax
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x58]
add eax, esi
test edi, edi
jl 0x459eb6
lea ecx, [edi + 1]
mov dword [ebp + 0x78], ecx
mov dl, byte [eax]
mov cl, byte [esi]
mov byte [esi], dl
inc esi
mov byte [eax], cl
dec eax
dec dword [ebp + 0x78]
jne 0x459ea7
add esi, dword [ebp + 0x68]
dec dword [ebp + 0x54]
jne 0x459e98
jmp 0x45a1e2
dec eax
js 0x45a1e2
mov edi, dword [ebp + 0x3c]
dec edi
inc eax
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x58]
add eax, esi
test edi, edi
jl 0x459f06
lea ecx, [edi + 1]
mov dword [ebp + 0x54], ecx
lea ecx, [ebx - 1]
test ecx, ecx
jl 0x459efc
mov ecx, ebx
mov dword [ebp + 0x78], ecx
mov dl, byte [eax]
mov cl, byte [esi]
mov byte [esi], dl
inc esi
mov byte [eax], cl
inc eax
dec dword [ebp + 0x78]
jne 0x459eed
lea ecx, [ebx + ebx]
sub eax, ecx
dec dword [ebp + 0x54]
jne 0x459ee1
add esi, dword [ebp + 0x68]
dec dword [ebp + 0x10]
jne 0x459ed2
jmp 0x45a1e2
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x20]
xor edx, edx
mov edi, esi
sub edi, eax
add edi, dword [ebp + 0x1c]
mov byte [ebp + 0x7b], cl
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x10], edx
mov dword [ebp], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
cmp dword [ebp + 0x60], 8
mov dword [ebp - 0x30], edi
jl 0x45a011
and byte [ebp + 0x7b], 0x3f
mov bl, 0x40
sub bl, byte [ebp + 0x7b]
cmp esi, edi
mov byte [ebp + 0x50], bl
jae 0x45a186
movzx eax, byte [ebp + 0x6f]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, 0
je 0x459ff6
dec eax
je 0x459fe2
dec eax
je 0x459faa
dec eax
je 0x459f7c
dec eax
je 0x459f87
dec eax
je 0x459f92
jmp 0x45a001
mov eax, dword [ebp + 0x20]
mov dword [esi], eax
mov eax, dword [ebp + 0x24]
mov dword [esi + 4], eax
mov eax, dword [esi]
add dword [ebp + 0x48], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push dword [esi + 4]
push dword [esi]
call fcn.0049a8f0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
jmp 0x45a001
mov edi, dword [esi]
mov edx, dword [esi + 4]
movzx ecx, bl
mov eax, edi
call fcn.0049d0b0
movzx ecx, byte [ebp + 0x20]
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 4]
mov dword [ebp - 4], eax
mov eax, edi
call fcn.0049d180
mov edi, dword [ebp - 0x30]
or ebx, eax
mov eax, dword [ebp - 4]
or eax, edx
mov dword [esi], ebx
mov bl, byte [ebp + 0x50]
mov dword [esi + 4], eax
jmp 0x45a001
cmp word [ebp + 0x5c], 0x5e
jne 0x45a001
mov eax, dword [ebp + 0x20]
xor dword [esi], eax
mov eax, dword [ebp + 0x24]
xor dword [esi + 4], eax
jmp 0x45a001
mov eax, dword [ebp + 0x20]
add dword [esi], eax
mov eax, dword [ebp + 0x24]
adc dword [esi + 4], eax
add esi, dword [ebp + 0x60]
cmp esi, edi
jb 0x459f5c
jmp 0x45a186
cmp dword [ebp + 0x60], 4
jl 0x45a08e
and byte [ebp + 0x7b], 0x1f
mov bl, 0x20
sub bl, byte [ebp + 0x7b]
jmp 0x45a085
movzx eax, byte [ebp + 0x6f]
sub eax, 0
je 0x45a080
dec eax
je 0x45a075
dec eax
je 0x45a062
dec eax
je 0x45a03c
dec eax
je 0x45a03e
dec eax
je 0x45a047
jmp 0x45a082
mov dword [esi], ecx
mov eax, dword [esi]
cdq
add dword [ebp + 0x48], eax
adc dword [ebp + 0x4c], edx
push dword [ebp + 0x4c]
mov eax, dword [esi]
push dword [ebp + 0x48]
cdq
push edx
push eax
call fcn.0049a8f0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
mov ecx, dword [ebp + 0x20]
jmp 0x45a082
mov eax, dword [esi]
mov edx, eax
mov cl, bl
shl edx, cl
mov cl, byte [ebp + 0x7b]
shr eax, cl
or edx, eax
mov dword [esi], edx
jmp 0x45a05d
cmp word [ebp + 0x5c], 0x5e
jne 0x45a082
xor dword [esi], ecx
jmp 0x45a082
add dword [esi], ecx
add esi, dword [ebp + 0x60]
cmp esi, edi
jb 0x45a022
jmp 0x45a186
cmp dword [ebp + 0x60], 2
jl 0x45a112
and byte [ebp + 0x7b], 0xf
mov bl, 0x10
sub bl, byte [ebp + 0x7b]
jmp 0x45a10c
movzx eax, byte [ebp + 0x6f]
sub eax, 0
je 0x45a106
dec eax
je 0x45a0fa
dec eax
je 0x45a0e2
dec eax
je 0x45a0b9
dec eax
je 0x45a0bc
dec eax
je 0x45a0c6
jmp 0x45a109
mov word [esi], cx
movsx eax, word [esi]
cdq
add dword [ebp + 0x48], eax
adc dword [ebp + 0x4c], edx
push dword [ebp + 0x4c]
movsx eax, word [esi]
push dword [ebp + 0x48]
cdq
push edx
push eax
call fcn.0049a8f0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
mov ecx, dword [ebp + 0x20]
jmp 0x45a109
xor eax, eax
mov ax, word [esi]
mov cl, bl
mov edx, eax
shl edx, cl
mov cl, byte [ebp + 0x7b]
shr ax, cl
or edx, eax
mov word [esi], dx
jmp 0x45a0dd
cmp word [ebp + 0x5c], 0x5e
jne 0x45a109
xor word [esi], cx
jmp 0x45a109
add word [esi], cx
add esi, dword [ebp + 0x60]
cmp esi, edi
jb 0x45a09f
jmp 0x45a186
and byte [ebp + 0x7b], 7
mov bl, 8
sub bl, byte [ebp + 0x7b]
jmp 0x45a182
movzx eax, byte [ebp + 0x6f]
sub eax, 0
je 0x45a17d
dec eax
je 0x45a172
dec eax
je 0x45a15f
dec eax
je 0x45a137
dec eax
je 0x45a139
dec eax
je 0x45a143
jmp 0x45a17f
mov byte [esi], cl
movsx eax, byte [esi]
cdq
add dword [ebp + 0x48], eax
adc dword [ebp + 0x4c], edx
push dword [ebp + 0x4c]
movsx eax, byte [esi]
push dword [ebp + 0x48]
cdq
push edx
push eax
call fcn.0049a8f0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
mov ecx, dword [ebp + 0x20]
jmp 0x45a17f
mov al, byte [esi]
mov dl, al
mov cl, bl
shl dl, cl
mov cl, byte [ebp + 0x7b]
shr al, cl
or dl, al
mov byte [esi], dl
jmp 0x45a15a
cmp word [ebp + 0x5c], 0x5e
jne 0x45a17f
xor byte [esi], cl
jmp 0x45a17f
add byte [esi], cl
add esi, dword [ebp + 0x60]
cmp esi, edi
jb 0x45a11d
cmp dword [ebp + 0x54], 0
jle 0x45a1c7
cmp word [ebp + 0x5c], 0x3e
je 0x45a1c7
cmp word [ebp + 0x5c], 0x2e
je 0x45a1c7
mov edi, dword [ebp + 0x54]
push edi
lea eax, [ebp - 0x38]
push esi
push eax
call fcn.00413203
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0x10], edi
mov edi, dword [ebp + 0x60]
add esp, 0xc
and dword [ebp + 0x54], 0
mov dword [ebp], esi
lea esi, [ebp - 0x38]
lea edi, [ebp + edi - 0x38]
jmp 0x459f34
cmp dword [ebp + 0x10], 0
je 0x45a1df
push dword [ebp + 0x10]
lea eax, [ebp - 0x38]
push eax
push dword [ebp]
call fcn.00413203
add esp, 0xc
mov ebx, dword [ebp + 0x40]
mov esi, dword [ebp - 0x18]
add esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
add dword [ebp + 0x14], eax
add dword [ebp + 4], 0xffffffff
mov dword [ebp - 0x18], esi
adc dword [ebp + 8], 0xffffffff
cmp dword [ebp + 8], 0
jg 0x459e1c
jl 0x45a20f
cmp dword [ebp + 4], 0
jae 0x459e1c
xor esi, esi
cmp dword [ebp + 0x28], esi
je 0x45a22f
push str._I64d
push dword [ebp + 0x28]
push dword [ebp + 0x4c]
push dword [ebp + 0x48]
push dword [ebp + 0x34]
call fcn.004421b0
add esp, 0x14
push 0x4c9c14
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45aa5e
push 0x4c9c14
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45aa5e
mov ecx, dword [ebp + 0x68]
push 0x2c
pop edi
cmp word [ecx], di
lea eax, [ecx + 2]
mov dword [ebp - 4], eax
jne 0x45a288
push 1
mov dword [ebp + 0x68], eax
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x44]
call fcn.00451235
push ebx
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.00442a94
mov esi, dword [ebp + 0x2c]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x45a2b4
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x44]
call fcn.00451235
push ebx
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.004429d8
mov esi, dword [ebp + 0x2c]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x45a2e0
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x44]
call fcn.00451235
push ebx
lea ecx, [ebp + 0x44]
push ecx
push eax
call fcn.004429d8
mov esi, dword [ebp + 0x2c]
add esp, 0xc
mov ax, word [esi]
cmp ax, bx
je 0x45aa5b
mov ecx, dword [ebp + 0xc]
cmp word [ecx], bx
je 0x45aa5b
mov ecx, dword [ebp - 0x24]
cmp word [ecx], bx
je 0x45aa5b
mov edx, dword [ebp + 0x44]
cmp word [edx], bx
je 0x45aa5b
xor edi, edi
push 0x2a
mov ebx, ecx
pop ecx
cmp ax, cx
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x28], edi
mov byte [ebp + 0x6f], 0
jne 0x45a364
cmp word [esi + 2], cx
jne 0x45a355
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x52], 2
mov byte [ebp + 0x33], al
jne 0x45a367
inc esi
inc esi
mov byte [ebp + 0x52], 3
jmp 0x45a367
cmp ax, cx
jne 0x45a364
mov al, byte [esi]
mov byte [ebp + 0x33], al
add esi, 2
jmp 0x45a367
mov al, byte [ebp - 0x11]
cmp word [esi], 0x2d
jne 0x45a371
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x45a24a
push esi
push 0x4b7958
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a393
mov byte [ebp + 0x6f], 1
jmp 0x45a4a6
push esi
push str.ANSI
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a3ac
mov dword [ebp + 0x3c], edi
jmp 0x45a4a6
push esi
push 0x4b7954
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a3c9
mov dword [ebp + 0x3c], 0x3a8
jmp 0x45a4a6
push esi
push str.BIG5
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a3e6
mov dword [ebp + 0x3c], 0x3b6
jmp 0x45a4a6
push esi
push str.UTF8
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a403
mov dword [ebp + 0x3c], 0xfde9
jmp 0x45a4a6
push esi
push str.UTF7
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a420
mov dword [ebp + 0x3c], 0xfde8
jmp 0x45a4a6
push esi
push str.UNICODE
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a43a
mov dword [ebp + 0x5c], 0x4b0
jmp 0x45a4a6
push esi
push 0x4afc18
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45a431
push esi
push str.UNICODEB
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a465
mov dword [ebp + 0x5c], 0x4b1
jmp 0x45a4a6
push esi
push str.UNIB
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45a45c
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.0043f865
add esp, 4
test al, al
je 0x45a494
push esi
call fcn.004408e4
pop ecx
mov dword [ebp + 0x3c], eax
jmp 0x45a4a6
cmp cx, di
jne 0x45a24a
xor eax, eax
inc eax
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x54], eax
mov edx, dword [ebp - 0x24]
mov ax, word [edx]
cmp ax, 0x2a
jne 0x45a4d7
cmp word [edx + 2], ax
jne 0x45a4c5
mov byte [ebp + 0x7b], al
mov cl, al
mov byte [ebp + 0x51], al
lea ebx, [edx + 4]
jmp 0x45a4da
cmp ax, 0x2a
jne 0x45a4d7
mov al, byte [edx]
mov byte [ebp + 0x7b], al
mov cl, al
lea ebx, [edx + 2]
jmp 0x45a4da
mov cl, byte [ebp - 0x12]
cmp word [ebx], 0x2d
jne 0x45a4e4
mov cl, byte [ebx]
inc ebx
inc ebx
test cl, cl
je 0x45a24a
push ebx
push str.ANSI
call fcn.0043af97
test al, al
pop ecx
pop ecx
mov esi, 0x4b4b60
mov edi, 0x4b4b64
je 0x45a510
and dword [ebp + 0x18], 0
jmp 0x45a625
push ebx
push 0x4b7954
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a52d
mov dword [ebp + 0x18], 0x3a8
jmp 0x45a625
push ebx
push str.BIG5
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a54a
mov dword [ebp + 0x18], 0x3b6
jmp 0x45a625
push ebx
push str.UTF8
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a575
mov dword [ebp + 0x18], 0xfde9
mov dword [ebp + 0x28], 0x4b4b68
mov dword [ebp + 0x1c], 3
jmp 0x45a625
push ebx
push str.UTF7
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a592
mov dword [ebp + 0x18], 0xfde8
jmp 0x45a625
push ebx
push str.UNICODE
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a5b6
mov dword [ebp + 0x14], 0x4b0
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x1c], 2
jmp 0x45a625
push ebx
push 0x4afc18
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45a5a3
push ebx
push str.UNICODEB
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45a5e9
push ebx
push str.UNIB
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45a5f5
mov dword [ebp + 0x14], 0x4b1
mov dword [ebp + 0x28], edi
jmp 0x45a5ad
xor ecx, ecx
mov cx, word [ebx]
push ecx
call fcn.0043f865
add esp, 4
test al, al
je 0x45a613
push ebx
call fcn.004408e4
pop ecx
mov dword [ebp + 0x18], eax
jmp 0x45a625
test cx, cx
jne 0x45a24a
xor eax, eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], eax
cmp byte [ebp + 0x50], 0
je 0x45a62f
and dword [ebp + 0x28], 0
xor ebx, ebx
lea ecx, [ebp + 0x58]
mov dword [ebp + 0x60], ebx
call fcn.0043fc26
xor edi, edi
cmp byte [ebp + 0x33], 0
mov byte [ebp + 0x67], 0
jne 0x45a7ef
mov eax, dword [ebp - 4]
xor esi, esi
inc esi
push esi
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x44]
mov dword [ebp + 0x38], ebx
call fcn.00451235
push ebx
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.004429d8
push dword [ebp + 0xc]
call fcn.00411f27
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x38]
call fcn.004054c4
mov edi, dword [ebp + 0x38]
cmp edi, ebx
jne 0x45a6ba
lea ecx, [ebp + 0x38]
call fcn.00402c5b
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x60]
call fcn.00402c5b
jmp 0x45aa5e
push 2
push ebx
push ebx
push edi
call fcn.0043ae64
push 1
push ebx
push ebx
push edi
call fcn.0043ae64
push ebx
push ebx
mov esi, eax
push ebx
push edi
mov dword [ebp], esi
call fcn.0043ae64
add esp, 0x30
add esi, 0xa
push esi
lea ecx, [ebp + 0x58]
call fcn.0043fc68
mov esi, dword [ebp + 0x58]
push ebx
lea eax, [ebp - 0x18]
push eax
push dword [ebp]
mov byte [esi + 2], 0
mov byte [esi + 1], 0
push esi
mov byte [esi], 0
or dword [ebp - 0x18], 0xffffffff
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
mov edi, eax
jge 0x45a723
lea ecx, [ebp + 0x38]
call fcn.00402c5b
jmp 0x45aa4b
add eax, esi
cmp byte [ebp + 0x6f], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
mov dword [ebp + 0x40], ebx
jne 0x45a742
cmp dword [ebp + 0x5c], 0x4b0
jne 0x45a76c
push 2
push 0x4b4b60
push esi
call fcn.00439d3f
add esp, 0xc
test eax, eax
jne 0x45a766
mov dword [ebp + 0x5c], 0x4b0
mov dword [ebp + 0x40], 2
jmp 0x45a7c3
cmp byte [ebp + 0x6f], 0
jne 0x45a775
cmp dword [ebp + 0x5c], 0x4b1
jne 0x45a798
push 2
push 0x4b4b64
push esi
call fcn.00439d3f
add esp, 0xc
test eax, eax
jne 0x45a792
mov dword [ebp + 0x5c], 0x4b1
jmp 0x45a75d
cmp byte [ebp + 0x6f], 0
jne 0x45a7a1
cmp dword [ebp + 0x3c], 0xfde9
jne 0x45a7db
push 3
push 0x4b4b68
push esi
call fcn.00439d3f
add esp, 0xc
test eax, eax
jne 0x45a7db
mov dword [ebp + 0x3c], 0xfde9
mov dword [ebp + 0x40], 3
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebp]
sub eax, ecx
add eax, 3
push eax
add ecx, esi
push ecx
push esi
call fcn.004131b9
add esp, 0xc
sub edi, dword [ebp + 0x40]
jns 0x45a7e2
xor edi, edi
lea ecx, [ebp + 0x38]
call fcn.00402c5b
jmp 0x45a8ce
cmp byte [ebp + 0x52], 0
je 0x45a88a
mov ecx, dword [ebp + 0x34]
xor esi, esi
push esi
lea eax, [ebp + 0xc]
push eax
call fcn.00402e5f
mov ecx, dword [ebp + 0x34]
push esi
push 0xffffffffffffffff
push esi
push dword [ebp + 0xc]
call fcn.0040fd4e
mov ebx, eax
cmp ebx, esi
je 0x45a86b
cmp byte [ebp + 0x52], 3
jne 0x45a839
push dword [ebx + 4]
lea eax, [ebp + 0x58]
push eax
call fcn.00444077
pop ecx
pop ecx
mov edi, eax
mov byte [ebp + 0x67], 2
jmp 0x45a875
mov edi, dword [ebx + 0x10]
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043fc68
mov esi, dword [ebp + 0x58]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.0049a7e0
push edi
push dword [ebx + 4]
push esi
call fcn.00413203
add esp, 0x18
mov byte [ebp + 0x67], 1
jmp 0x45a878
push 8
lea ecx, [ebp + 0x58]
call fcn.0043fc68
mov esi, dword [ebp + 0x58]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.0049a7e0
add esp, 0xc
jmp 0x45a8ce
cmp dword [ebp + 0x54], ebx
je 0x45a8b7
push 0xffffffffffffffff
push dword [ebp + 0xc]
lea ecx, [ebp + 0x58]
call fcn.0043febe
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov edi, eax
shl edi, 1
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x58]
call fcn.0043fc68
jmp 0x45a8c7
push dword [ebp + 0xc]
lea eax, [ebp + 0x58]
push eax
call fcn.00444077
pop ecx
pop ecx
mov edi, eax
mov esi, dword [ebp + 0x58]
mov byte [ebp + 0x67], 2
test edi, edi
jl 0x45aa4b
cmp byte [ebp + 0x6f], 0
je 0x45a959
cmp byte [ebp + 0x67], 0
je 0x45a959
push 2
push 0x4b4b60
push esi
xor ebx, ebx
call fcn.00439d3f
add esp, 0xc
test eax, eax
push 2
jne 0x45a903
mov dword [ebp + 0x5c], 0x4b0
jmp 0x45a93d
push 0x4b4b64
push esi
call fcn.00439d3f
add esp, 0xc
test eax, eax
jne 0x45a920
mov dword [ebp + 0x5c], 0x4b1
push 2
jmp 0x45a93d
push 3
push 0x4b4b68
push esi
call fcn.00439d3f
add esp, 0xc
test eax, eax
jne 0x45a953
mov dword [ebp + 0x3c], 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.004131b9
add esp, 0xc
sub edi, ebx
jns 0x45a959
xor edi, edi
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x40], esi
mov dword [ebp], esi
call fcn.0043fd9a
mov ebx, dword [ebp + 0x18]
cmp ebx, dword [ebp + 0x3c]
jne 0x45a9f7
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x5c]
jne 0x45a9f7
cmp byte [ebp + 0x51], 0
je 0x45a999
push 0
lea eax, [ebp + 0x44]
push eax
push edi
push esi
push dword [ebp + 0x44]
push dword [ebp + 0x34]
call fcn.0044b72d
add esp, 0x18
jmp 0x45a9db
cmp byte [ebp + 0x7b], 0
jne 0x45a9ab
push edi
push esi
lea ecx, [ebp + 0x60]
call fcn.00439bee
jmp 0x45a9db
cmp dword [ebp + 0x10], 0
jne 0x45a9c4
push edi
lea eax, [ebp + 0x68]
push esi
push eax
call fcn.00443ff0
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x45a9d0
cmp dword [ebp + 0x54], 0
je 0x45a9cf
push dword [ebp + 0xc]
jmp 0x45a9d0
push esi
push dword [ebp + 0x44]
mov ecx, dword [ebp + 0x34]
call fcn.0043f62b
lea ecx, [ebp + 0x68]
call fcn.00439cfd
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x60]
call fcn.00402c5b
xor esi, esi
jmp 0x45aa5e
cmp dword [ebp + 0x5c], 0x4b1
jne 0x45aa13
push edi
push esi
mov dword [ebp + 0x5c], 0x4b0
call fcn.0043e071
pop ecx
pop ecx
and edi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x45aa92
push dword [ebp + 0x44]
call fcn.00411f27
pop ecx
push 0
push 0x80
push 4
push 0
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x60]
call fcn.004054c4
cmp dword [ebp + 0x60], 0
jne 0x45aa92
lea ecx, [ebp + 0x68]
call fcn.00439cfd
lea ecx, [ebp + 0x58]
call fcn.00439cfd
lea ecx, [ebp + 0x60]
call fcn.00402c5b
xor esi, esi
inc esi
lea ecx, [ebp + 0x44]
call fcn.00439cfd
lea ecx, [ebp - 0x24]
call fcn.00439cfd
lea ecx, [ebp + 0xc]
call fcn.00439cfd
lea ecx, [ebp + 0x2c]
call fcn.00439cfd
lea ecx, [ebp - 0x44]
call fcn.00439cfd
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
and dword [ebp + 0x54], 0
mov eax, 0x3a8
cmp ebx, eax
mov ebx, 0x3b6
jne 0x45aaa9
cmp dword [ebp + 0x3c], ebx
je 0x45aab3
cmp dword [ebp + 0x3c], eax
jne 0x45ab21
cmp dword [ebp + 0x18], ebx
jne 0x45ab21
cmp byte [ebp + 0x53], 0
je 0x45aabd
mov byte [ebp + 0x53], 3
lea ecx, [ebp + 0x38]
call fcn.0043fc26
xor eax, eax
cmp dword [ebp + 0x18], ebx
sete al
push eax
lea eax, [ebp + 0x38]
push eax
push esi
call fcn.00444104
mov eax, esi
mov esi, dword [ebp + 0x38]
add esp, 0xc
push esi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x38], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
cmp byte [ebp + 0x53], 3
mov edi, eax
mov dword [ebp + 0x40], esi
jne 0x45ab19
cmp byte [ebp + 0x7b], 0
jne 0x45ab19
test edi, edi
jle 0x45ab0c
push edi
push esi
lea ecx, [ebp + 0x60]
call fcn.00439bee
lea ecx, [ebp + 0x38]
call fcn.00439cfd
jmp 0x45acb9
lea ecx, [ebp + 0x38]
call fcn.00439cfd
mov ebx, edi
shr ebx, 1
cmp dword [ebp + 0x5c], 0
jne 0x45ab64
lea ebx, [edi + 0xa]
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.0043fddf
push ebx
push dword [ebp + 0x68]
push edi
push esi
push 0
push dword [ebp + 0x3c]
call dword [0x4c8ba0]
mov ebx, eax
test ebx, ebx
jge 0x45ab53
xor ebx, ebx
mov eax, dword [ebp + 0x68]
lea edi, [ebx + ebx]
and word [edi + eax], 0
mov dword [ebp + 0x40], eax
mov dword [ebp], eax
cmp dword [ebp + 0x14], 0x4b1
jne 0x45ab78
push edi
push dword [ebp + 0x40]
call fcn.0043e071
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x14], eax
jle 0x45ac09
cmp byte [ebp + 0x51], al
je 0x45aba6
xor esi, esi
push esi
lea eax, [ebp + 0x44]
push eax
push edi
push dword [ebp + 0x40]
push dword [ebp + 0x44]
push dword [ebp + 0x34]
call fcn.0044b72d
add esp, 0x18
jmp 0x45acc9
cmp byte [ebp + 0x7b], 0
jne 0x45abd1
cmp edi, eax
jle 0x45acb9
cmp dword [ebp + 0x28], 0
je 0x45abc8
push dword [ebp + 0x1c]
lea ecx, [ebp + 0x60]
push dword [ebp + 0x28]
call fcn.00439bee
push edi
push dword [ebp + 0x40]
jmp 0x45ac6e
cmp dword [ebp + 0x10], eax
jne 0x45ac0e
lea ecx, [ebp + 0x78]
call fcn.0043fd9a
push ebx
push dword [ebp + 0x40]
lea eax, [ebp + 0x78]
push eax
call fcn.00444051
mov ecx, dword [ebp + 0x34]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x44]
call fcn.0043f62b
lea ecx, [ebp + 0x78]
call fcn.00439cfd
jmp 0x45acb9
cmp dword [ebp + 0x10], eax
je 0x45ac16
push dword [ebp]
jmp 0x45acae
shr edi, 1
lea esi, [edi + edi*2]
lea esi, [esi + esi + 0xa]
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x54]
call fcn.0043fc68
mov ebx, dword [ebp + 0x54]
xor eax, eax
push eax
push eax
push esi
push ebx
push edi
push dword [ebp + 0x40]
push eax
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
mov esi, eax
test esi, esi
jge 0x45ac4a
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [ebx + esi], 0
jne 0x45ac78
test esi, esi
jle 0x45acb9
cmp dword [ebp + 0x28], 0
je 0x45ac6c
push dword [ebp + 0x1c]
lea ecx, [ebp + 0x60]
push dword [ebp + 0x28]
call fcn.00439bee
push esi
push ebx
lea ecx, [ebp + 0x60]
call fcn.00439bee
jmp 0x45acb9
cmp byte [ebp + 0x51], 0
je 0x45ac9d
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
push 0
lea ecx, [ebp + 0x44]
push ecx
push eax
push ebx
push dword [ebp + 0x44]
push dword [ebp + 0x34]
call fcn.0044b72d
add esp, 0x18
jmp 0x45acb9
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.00443ff0
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x44]
mov ecx, dword [ebp + 0x34]
call fcn.0043f62b
xor esi, esi
cmp dword [ebp + 0x60], esi
je 0x45acc9
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.00439cfd
jmp 0x45a6a5