Function at 0x461b2f
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xd4
push ebx
push esi
push edi
mov dword [ebp + 0x28], ecx
push ecx
lea ecx, [ebp - 0x54]
call fcn.0044732d
lea eax, [ebp + 0x78]
push eax
call fcn.0043e7bd
pop ecx
lea ecx, [ebp + 0x20]
call fcn.00444f6c
lea ecx, [ebp + 0xc]
call fcn.00444f6c
lea ecx, [ebp - 0x2c]
call fcn.00444f6c
lea ecx, [ebp + 0x38]
call fcn.00444f6c
mov eax, dword [ebp + 0x78]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.00458b67
push 0
lea ecx, [ebp + 0x20]
push ecx
push eax
call fcn.00447e0d
mov esi, dword [ebp + 0x20]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor ebx, ebx
test ax, ax
mov byte [ebp + 0x3f], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x65], 0
mov ecx, esi
je 0x461bd6
call fcn.0043e785
test al, al
je 0x461bc0
mov ebx, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x461bb5
test ebx, ebx
je 0x461bd6
and word [ebx], ax
mov esi, dword [ebp + 0x20]
inc ebx
inc ebx
test ebx, ebx
mov eax, esi
mov dword [ebp + 0x78], eax
je 0x461c59
cmp word [esi], 0x2a
jne 0x461c59
cmp word [eax + 2], 0x2d
je 0x461c59
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.00446fac
add esp, 0xc
test al, al
je 0x461c09
mov byte [ebp + 0x67], 1
jmp 0x461c4d
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.00446fac
add esp, 0xc
test al, al
je 0x461c26
mov byte [ebp + 0x3f], 1
jmp 0x461c4d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4cb320
call fcn.00446fac
add esp, 0xc
test al, al
je 0x461c43
mov byte [ebp + 0x65], 1
jmp 0x461c4d
lea eax, [ebp + 0x78]
push eax
call fcn.00409344
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0x20]
je 0x461be5
xor edi, edi
cmp ebx, edi
mov byte [ebp + 0x53], 0
mov byte [ebp - 0x11], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp + 0x7b], 0
mov byte [ebp - 0x1d], 0
mov byte [ebp + 0x66], 0
je 0x461c97
push ebx
lea ecx, [ebp + 0x54]
call fcn.0044e827
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x54], ecx
lea ecx, [ebp + 0x54]
mov dword [ebp + 0x20], eax
call fcn.0043e825
mov esi, dword [ebp + 0x20]
cmp byte [ebp + 0x65], 0
je 0x4626fa
mov ecx, dword [ebp + 0x28]
push edi
lea eax, [ebp + 0x20]
push eax
call fcn.00402ef7
mov ecx, dword [ebp + 0x28]
xor esi, esi
inc esi
push esi
push edi
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x68]
call fcn.004567e7
mov eax, dword [ebp + 0x38]
cmp word [eax], 0x2c
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x10], edi
jne 0x461ce0
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.0043e7bd
pop ecx
mov ecx, dword [ebp + 0x68]
xor ebx, ebx
mov bx, word [ecx]
cmp bx, di
mov dword [ebp + 0x60], ebx
je 0x4626f0
cmp bx, 0x2b
mov edx, 0x3a0
jne 0x461d1d
lea eax, [ecx + 2]
cmp word [eax], bx
jne 0x461d4d
mov ebx, 0x3a3
mov ecx, eax
mov dword [ebp + 0x60], ebx
jmp 0x461d4d
cmp bx, 0x2a
jne 0x461d32
lea eax, [ecx + 2]
cmp word [eax], bx
jne 0x461d4d
mov ebx, edx
mov ecx, eax
mov dword [ebp + 0x60], ebx
cmp bx, dx
jne 0x461d3f
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], edi
jmp 0x461d4d
cmp bx, 0x3f
jne 0x461d4d
or dword [ebp + 0x58], 0xffffffff
or dword [ebp + 0x5c], 0xffffffff
inc ecx
lea eax, [ebp + 0x68]
inc ecx
push eax
mov dword [ebp + 0x68], ecx
call fcn.0043e7bd
cmp bx, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x461d6f
mov dword [ebp + 0x78], 0x3f
jmp 0x461d84
cmp bx, 0x3a3
mov dword [ebp + 0x78], ebx
je 0x461d84
cmp bx, dx
je 0x461d84
cmp bx, 0x3f
jne 0x461de8
cmp word [esi], 0x2c
je 0x461dee
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x1c], esi
call fcn.00405bbb
mov eax, dword [ebp + 0x68]
cmp word [eax], di
pop ecx
je 0x461da8
mov word [eax], di
inc eax
inc eax
mov dword [ebp + 0x68], eax
cmp word [ebp + 0x78], 0x3f
jne 0x461df3
jmp 0x461dc2
mov ax, word [esi]
cmp ax, 0x2b
je 0x461dc9
cmp ax, 0x2d
je 0x461dd1
inc esi
inc esi
cmp word [esi], di
jne 0x461db1
jmp 0x461df3
lea eax, [esi + 2]
mov dword [ebp + 0x54], eax
jmp 0x461dd4
mov dword [ebp + 0x54], esi
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.004483d5
pop ecx
pop ecx
mov word [esi], di
jmp 0x461df3
cmp word [esi], 0x2c
jne 0x461df3
inc esi
inc esi
mov dword [ebp + 0x68], esi
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
or dword [ebp + 8], 0xffffffff
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
mov dword [ebp + 4], 0xfffe0000
mov dword [ebp + 0x44], 1
call fcn.00405bdb
test eax, eax
pop ecx
pop ecx
jle 0x4626f0
cmp bx, 0x2d
jne 0x461e4e
mov ebx, dword [ebp + 0x18]
mov dword [ebp + 0x60], 0x2b
jmp 0x461e5e
cmp bx, 0x3c
mov ebx, dword [ebp + 0x18]
jne 0x461e6d
mov dword [ebp + 0x60], 0x3e
mov eax, dword [ebp + 0x14]
neg eax
adc ebx, edi
neg ebx
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], ebx
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0047cd87
test eax, eax
pop ecx
pop ecx
jle 0x4626f0
cmp dword [ebp + 0x44], edi
jle 0x4626f0
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bdb
cmp dword [ebp - 0x30], edi
pop ecx
pop ecx
jl 0x4626f0
jg 0x461eb0
cmp dword [ebp - 0x34], edi
jb 0x4626f0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bdb
pop ecx
pop ecx
mov edi, 0x4ddd50
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x28]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x20]
call fcn.00410e94
mov esi, eax
test esi, esi
je 0x4626e9
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [ebp - 0x30], edx
mov dword [ebp], ecx
mov dword [ebp - 0x38], edx
jg 0x4626e9
jl 0x461f06
cmp dword [ebp - 0x34], eax
jae 0x4626e9
test ecx, ecx
jle 0x4626e9
cmp dword [ebp - 8], 0
jg 0x461f22
jl 0x461f1c
cmp dword [ebp - 0xc], 0
ja 0x461f22
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov edi, dword [ebp - 0x34]
mov esi, dword [esi + 4]
sub ecx, edi
mov eax, ecx
cdq
cmp dword [ebp - 8], edx
mov dword [ebp + 0x34], esi
jl 0x461f42
jg 0x461f3c
cmp dword [ebp - 0xc], eax
jbe 0x461f42
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov dword [ebp + 0x24], ecx
jle 0x461f4f
mov dword [ebp + 0x24], eax
cmp dword [ebp + 0x24], 0
jle 0x46207d
mov ecx, dword [ebp + 0x60]
mov eax, ecx
or eax, 0x20
add esi, edi
cmp ax, 0x68
push 0x6f
pop edx
je 0x461f77
cmp ax, 0x6e
je 0x461f77
cmp ax, dx
jne 0x461f7c
mov ecx, edx
mov dword [ebp + 0x60], ecx
cmp cx, 0x3a9
jne 0x461fe9
mov byte [ebp + 0x6f], 9
cmp cx, dx
mov dword [ebp + 0x54], edi
jne 0x461fa3
mov eax, edi
cdq
cmp edx, ebx
jl 0x461fa3
jg 0x461f9d
cmp eax, dword [ebp + 0x14]
jbe 0x461fa3
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x54], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bdb
xor eax, eax
cmp dword [ebp - 0x1c], eax
pop ecx
pop ecx
jne 0x461fca
cmp dword [ebp - 0x18], eax
jne 0x461fcd
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], eax
jl 0x462087
jg 0x461fde
cmp dword [ebp - 0x1c], eax
jbe 0x462087
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
jmp 0x462094
cmp cx, 0x3f
jne 0x461ff5
mov byte [ebp + 0x6f], 8
jmp 0x461f87
cmp cx, 0x7c
jne 0x462001
mov byte [ebp + 0x6f], 7
jmp 0x461f87
cmp cx, 0x26
jne 0x462010
mov byte [ebp + 0x6f], 6
jmp 0x461f87
cmp cx, 0x3a0
jne 0x462020
mov byte [ebp + 0x6f], 5
jmp 0x461f87
cmp cx, 0x3a3
jne 0x462030
mov byte [ebp + 0x6f], 4
jmp 0x461f87
cmp cx, 0x2e
jne 0x46203f
mov byte [ebp + 0x6f], 3
jmp 0x461f87
cmp cx, 0x3e
jne 0x46204e
mov byte [ebp + 0x6f], 2
jmp 0x461f87
cmp cx, 0x5e
sete byte [ebp + 0x6f]
cmp byte [ebp + 0x6f], 0
jne 0x461f87
cmp cx, 0x2b
je 0x461f87
cmp cx, 0x23
je 0x461f87
cmp cx, dx
je 0x461f87
push 0x4ddd50
jmp 0x4626ea
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
neg edi
adc ebx, 0
neg ebx
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bdb
cmp dword [ebp + 8], 0
pop ecx
pop ecx
jg 0x4620f0
jl 0x4620b1
cmp dword [ebp + 4], 0
ja 0x4620f0
cmp dword [ebp + 4], 0xfffe0000
jne 0x4620c0
cmp dword [ebp + 8], 0xffffffff
je 0x4620d7
mov eax, dword [ebp]
sub eax, dword [ebp + 0x54]
push ebx
cdq
push edi
push edx
push eax
call fcn.004ae880
cdq
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
cmp dword [ebp + 8], 0
jg 0x4620f0
jl 0x4620e5
cmp dword [ebp + 4], 0
ja 0x4620f0
and dword [ebp + 8], 0
mov dword [ebp + 4], 1
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bdb
xor edi, edi
cmp dword [ebp - 0x44], edi
pop ecx
pop ecx
jne 0x462117
cmp dword [ebp - 0x40], edi
jne 0x462117
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x44]
and eax, 3
sub ecx, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp + 0x34]
sar ebx, 8
add eax, ecx
cmp ebx, edi
mov dword [ebp], esi
mov dword [ebp + 0x2c], eax
mov dword [ebp - 0x10], ebx
jg 0x462149
xor ebx, ebx
inc ebx
mov dword [ebp - 0x10], ebx
movzx ecx, byte [ebp + 0x44]
mov eax, dword [ebp + 0x24]
cdq
idiv ecx
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x5c], edx
mov eax, ecx
cdq
idiv ebx
lea edx, [eax - 1]
imul edx, ebx
mov dword [ebp + 0x4c], edx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
imul edx, ebx
mov dword [ebp + 0x40], eax
mov eax, ecx
sub eax, edx
cmp ecx, 8
mov dword [ebp + 0x68], eax
jl 0x462189
mov byte [ebp + 0x66], 3
jmp 0x46219b
cmp ecx, 4
jl 0x462194
mov byte [ebp + 0x66], 2
jmp 0x46219b
cmp ecx, 2
setge byte [ebp + 0x66]
mov eax, dword [ebp + 0x60]
cmp ax, 0x3e
je 0x4621c1
cmp ax, 0x2e
je 0x4621c1
cmp ax, 0x26
je 0x4621c1
cmp ax, 0x7c
je 0x4621c1
cmp word [ebp + 0x78], 0x3f
mov byte [ebp + 0x53], 1
jne 0x4621c5
mov byte [ebp + 0x53], 0
add dword [ebp + 4], 0xffffffff
adc dword [ebp + 8], 0xffffffff
js 0x46255d
jg 0x4621de
cmp dword [ebp + 4], edi
jb 0x46255d
cmp word [ebp + 0x60], 0x23
jne 0x462238
mov edi, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x58]
lea ecx, [edi + eax]
jmp 0x4621fe
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 0x4621f0
cmp dword [ebp - 4], 0
jle 0x4626b3
push dword [ebp - 4]
lea eax, [ebp - 0x60]
push esi
push eax
call fcn.004145c5
push dword [ebp - 4]
push edi
push esi
call fcn.004145c5
push dword [ebp - 4]
lea eax, [ebp - 0x60]
push eax
push edi
call fcn.004145c5
add esp, 0x24
jmp 0x4626b3
cmp word [ebp + 0x60], 0x6f
jne 0x4622d5
cmp ebx, 1
mov eax, dword [ebp + 0x30]
jg 0x462285
dec eax
js 0x4626b3
mov edi, dword [ebp + 0x40]
dec edi
inc eax
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x4c]
add eax, esi
test edi, edi
jl 0x462278
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 0x462269
add esi, dword [ebp + 0x68]
dec dword [ebp + 0x54]
jne 0x46225a
jmp 0x4626b3
dec eax
js 0x4626b3
mov edi, dword [ebp + 0x40]
dec edi
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x4c]
add eax, esi
test edi, edi
jl 0x4622c8
lea ecx, [edi + 1]
mov dword [ebp + 0x54], ecx
lea ecx, [ebx - 1]
test ecx, ecx
jl 0x4622be
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 0x4622af
lea ecx, [ebx + ebx]
sub eax, ecx
dec dword [ebp + 0x54]
jne 0x4622a3
add esi, dword [ebp + 0x68]
dec dword [ebp - 0x28]
jne 0x462294
jmp 0x4626b3
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov dword [ebp + 0x54], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
movzx eax, byte [ebp + 0x66]
mov edi, esi
sub edi, edx
add edi, dword [ebp + 0x24]
mov byte [ebp + 0x7b], cl
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x48], edi
je 0x4625a9
dec eax
je 0x4624be
dec eax
je 0x4623ba
and byte [ebp + 0x7b], 7
mov bl, 8
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x4623ad
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x462332
jmp dword [eax*4 + 0x4631d3]
add byte [esi], cl
jmp case.default.0x462332
cmp word [ebp + 0x60], 0x5e
jne case.default.0x462332
xor byte [esi], cl
jmp case.default.0x462332
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 0x462385
mov byte [esi], cl
jmp case.default.0x462332
movsx eax, byte [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
jmp case.default.0x462332
push dword [ebp + 0x5c]
movsx eax, byte [esi]
push dword [ebp + 0x58]
cdq
push edx
push eax
call fcn.004ae930
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov ecx, dword [ebp + 0x14]
jmp case.default.0x462332
and byte [esi], cl
jmp case.default.0x462332
or byte [esi], cl
jmp case.default.0x462332
test byte [esi], cl
je case.default.0x462332
mov eax, esi
sub eax, dword [ebp + 0x34]
jmp 0x462553
test byte [esi], cl
je case.default.0x462332
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
inc esi
cmp esi, edi
jb 0x462329
jmp 0x462661
and byte [ebp + 0x7b], 0x3f
mov bl, 0x40
sub bl, byte [ebp + 0x7b]
cmp esi, edi
mov byte [ebp + 0x67], bl
jae 0x462661
movzx eax, byte [ebp + 0x6f]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp eax, 9
ja case.default.0x4623e7
jmp dword [eax*4 + 0x4631fb]
add dword [esi], edx
adc dword [esi + 4], edi
jmp case.default.0x4623e7
cmp word [ebp + 0x60], 0x5e
jne case.default.0x4623e7
xor dword [esi], edx
xor dword [esi + 4], edi
jmp case.default.0x4623e7
mov edi, dword [esi]
mov edx, dword [esi + 4]
movzx ecx, bl
mov eax, edi
call fcn.004b0a20
movzx ecx, byte [ebp + 0x14]
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 4]
mov dword [ebp - 8], eax
mov eax, edi
call fcn.004b0a40
mov edi, dword [ebp + 0x18]
or ebx, eax
mov eax, dword [ebp - 8]
or eax, edx
mov dword [esi], ebx
mov bl, byte [ebp + 0x67]
mov dword [esi + 4], eax
jmp 0x46246f
mov dword [esi], edx
mov dword [esi + 4], edi
jmp case.default.0x4623e7
mov eax, dword [esi]
add dword [ebp + 0x58], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x5c], eax
jmp case.default.0x4623e7
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push dword [esi + 4]
push dword [esi]
call fcn.004ae930
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov edx, dword [ebp + 0x14]
jmp case.default.0x4623e7
and dword [esi], edx
and dword [esi + 4], edi
jmp case.default.0x4623e7
or dword [esi], edx
or dword [esi + 4], edi
jmp case.default.0x4623e7
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
jne 0x46254a
mov edi, dword [ebp + 0x18]
jmp case.default.0x4623e7
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
je case.default.0x4623e7
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
add esi, dword [ebp + 0x44]
cmp esi, dword [ebp - 0x48]
jb 0x4623db
jmp 0x462661
and byte [ebp + 0x7b], 0x1f
mov bl, 0x20
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x46259c
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x4624dc
jmp dword [eax*4 + 0x463223]
add dword [esi], ecx
jmp case.default.0x4624dc
cmp word [ebp + 0x60], 0x5e
jne case.default.0x4624dc
xor dword [esi], ecx
jmp case.default.0x4624dc
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 0x462539
mov dword [esi], ecx
jmp case.default.0x4624dc
mov eax, dword [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
jmp case.default.0x4624dc
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push 0
push dword [esi]
call fcn.004ae930
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov ecx, dword [ebp + 0x14]
jmp case.default.0x4624dc
and dword [esi], ecx
jmp case.default.0x4624dc
or dword [esi], ecx
jmp case.default.0x4624dc
test dword [esi], ecx
je case.default.0x4624dc
mov eax, esi
sub eax, dword [ebp + 0x34]
cdq
idiv dword [ebp + 0x44]
add eax, dword [ebp + 0x10]
cdq
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
xor esi, esi
cmp dword [ebp + 0x1c], esi
je 0x46257d
push str._I64d
push dword [ebp + 0x1c]
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push dword [ebp + 0x28]
call fcn.004475df
add esp, 0x14
push 0x4ddd50
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x462f29
test dword [esi], ecx
je case.default.0x4624dc
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
add esi, dword [ebp + 0x44]
cmp esi, edi
jb 0x4624cf
jmp 0x462661
and byte [ebp + 0x7b], 0xf
mov bl, 0x10
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x462659
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x4625c7
jmp dword [eax*4 + 0x46324b]
add word [esi], cx
jmp case.default.0x4625c7
cmp word [ebp + 0x60], 0x5e
jne case.default.0x4625c7
xor word [esi], cx
jmp case.default.0x4625c7
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 0x462625
mov word [esi], cx
jmp case.default.0x4625c7
movsx eax, word [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
jmp case.default.0x4625c7
push dword [ebp + 0x5c]
movsx eax, word [esi]
push dword [ebp + 0x58]
cdq
push edx
push eax
call fcn.004ae930
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov ecx, dword [ebp + 0x14]
jmp case.default.0x4625c7
and word [esi], cx
jmp case.default.0x4625c7
or word [esi], cx
jmp case.default.0x4625c7
movzx eax, word [esi]
movsx edx, cx
test edx, eax
jne 0x46254a
jmp case.default.0x4625c7
movzx eax, word [esi]
movsx edx, cx
test edx, eax
je case.default.0x4625c7
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
add esi, dword [ebp + 0x44]
cmp esi, edi
jb 0x4625ba
mov edi, dword [ebp - 0x28]
test edi, edi
jle 0x462698
cmp byte [ebp + 0x53], 0
je 0x462698
push edi
lea eax, [ebp - 0x3c]
push esi
push eax
call fcn.004145c5
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0x54], edi
mov edi, dword [ebp + 0x44]
add esp, 0xc
and dword [ebp - 0x28], 0
mov dword [ebp - 0x24], esi
lea esi, [ebp - 0x3c]
lea edi, [ebp + edi - 0x3c]
jmp 0x4622fd
cmp dword [ebp + 0x54], 0
je 0x4626b0
push dword [ebp + 0x54]
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x24]
call fcn.004145c5
add esp, 0xc
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp]
add esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x1c]
add dword [ebp + 0x2c], eax
add dword [ebp + 4], 0xffffffff
mov dword [ebp], esi
adc dword [ebp + 8], 0xffffffff
cmp dword [ebp + 8], 0
jg 0x4621de
jl 0x46255d
cmp dword [ebp + 4], 0
jae 0x4621de
jmp 0x46255d
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x462f29
mov ecx, dword [ebp + 0x68]
push 0x2c
pop ebx
cmp word [ecx], bx
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
jne 0x46272e
push 1
mov dword [ebp + 0x68], eax
push ebx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.00458b67
push edi
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.00447ec9
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
jne 0x46275a
add dword [ebp + 0x68], 2
push 1
push ebx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.00458b67
push edi
lea ecx, [ebp - 0x2c]
push ecx
push eax
call fcn.00447e0d
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
jne 0x462786
add dword [ebp + 0x68], 2
push 1
push ebx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.00458b67
push edi
lea ecx, [ebp + 0x38]
push ecx
push eax
call fcn.00447e0d
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov ax, word [esi]
cmp ax, di
je 0x462f26
mov ecx, dword [ebp + 0xc]
cmp word [ecx], di
je 0x462f26
mov ecx, dword [ebp - 0x2c]
cmp word [ecx], di
je 0x462f26
mov edx, dword [ebp + 0x38]
cmp word [edx], di
je 0x462f26
xor ebx, ebx
push 0x2a
mov edi, ecx
pop ecx
cmp ax, cx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0x4b], bl
jne 0x462809
cmp word [esi + 2], cx
jne 0x4627fa
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x6f], 2
mov byte [ebp + 0x53], al
jne 0x46280c
inc esi
inc esi
mov byte [ebp + 0x6f], 3
jmp 0x46280c
cmp ax, cx
jne 0x462809
mov al, byte [esi]
mov byte [ebp + 0x53], al
add esi, 2
jmp 0x46280c
mov al, byte [ebp - 0x11]
cmp word [esi], 0x2d
jne 0x462816
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x4626f0
push esi
push 0x4cb31c
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x462838
mov byte [ebp + 0x4b], 1
jmp 0x46294b
push esi
push 0x4c2e8c
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x462851
mov dword [ebp + 0x30], ebx
jmp 0x46294b
push esi
push 0x4cb318
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x46286e
mov dword [ebp + 0x30], 0x3a8
jmp 0x46294b
push esi
push str.BIG5
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x46288b
mov dword [ebp + 0x30], 0x3b6
jmp 0x46294b
push esi
push str.UTF8
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x4628a8
mov dword [ebp + 0x30], 0xfde9
jmp 0x46294b
push esi
push str.UTF7
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x4628c5
mov dword [ebp + 0x30], 0xfde8
jmp 0x46294b
push esi
push 0x4cb300
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x4628df
mov dword [ebp + 0x60], 0x4b0
jmp 0x46294b
push esi
push 0x4c2e88
call fcn.0043fc58
test al, al
pop ecx
pop ecx
jne 0x4628d6
push esi
push str.UNICODEB
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x46290a
mov dword [ebp + 0x60], 0x4b1
jmp 0x46294b
push esi
push str.UNIB
call fcn.0043fc58
test al, al
pop ecx
pop ecx
jne 0x462901
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.00414a48
add esp, 4
test al, al
je 0x462939
push esi
call fcn.00445c39
pop ecx
mov dword [ebp + 0x30], eax
jmp 0x46294b
cmp cx, bx
jne 0x4626f0
xor eax, eax
inc eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x54], eax
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx]
cmp ax, 0x2a
jne 0x462978
cmp word [ecx + 2], ax
jne 0x462968
mov byte [ebp + 0x7b], al
mov byte [ebp + 0x66], al
lea edi, [ecx + 4]
jmp 0x46297b
cmp ax, 0x2a
jne 0x462978
mov al, byte [ecx]
mov byte [ebp + 0x7b], al
lea edi, [ecx + 2]
jmp 0x46297b
mov al, byte [ebp - 0x1d]
cmp word [edi], 0x2d
jne 0x462985
mov al, byte [edi]
inc edi
inc edi
test al, al
je 0x4626f0
push edi
push 0x4c2e8c
call fcn.0043fc58
test al, al
pop ecx
pop ecx
mov esi, 0x4c8390
mov ebx, 0x4c8394
je 0x4629b1
and dword [ebp + 0x44], 0
jmp 0x462ac6
push edi
push 0x4cb318
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x4629ce
mov dword [ebp + 0x44], 0x3a8
jmp 0x462ac6
push edi
push str.BIG5
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x4629eb
mov dword [ebp + 0x44], 0x3b6
jmp 0x462ac6
push edi
push str.UTF8
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x462a16
mov dword [ebp + 0x44], 0xfde9
mov dword [ebp + 0x1c], 0x4c8398
mov dword [ebp + 0x24], 3
jmp 0x462ac6
push edi
push str.UTF7
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x462a33
mov dword [ebp + 0x44], 0xfde8
jmp 0x462ac6
push edi
push 0x4cb300
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x462a57
mov dword [ebp + 0x10], 0x4b0
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x24], 2
jmp 0x462ac6
push edi
push 0x4c2e88
call fcn.0043fc58
test al, al
pop ecx
pop ecx
jne 0x462a44
push edi
push str.UNICODEB
call fcn.0043fc58
test al, al
pop ecx
pop ecx
jne 0x462a8a
push edi
push str.UNIB
call fcn.0043fc58
test al, al
pop ecx
pop ecx
je 0x462a96
mov dword [ebp + 0x10], 0x4b1
mov dword [ebp + 0x1c], ebx
jmp 0x462a4e
xor ecx, ecx
mov cx, word [edi]
push ecx
call fcn.00414a48
add esp, 4
test al, al
je 0x462ab4
push edi
call fcn.00445c39
pop ecx
mov dword [ebp + 0x44], eax
jmp 0x462ac6
test cx, cx
jne 0x4626f0
xor eax, eax
inc eax
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x10], eax
cmp byte [ebp + 0x67], 0
je 0x462ad0
and dword [ebp + 0x1c], 0
xor edi, edi
lea ecx, [ebp + 0x4c]
mov dword [ebp + 0x40], edi
call fcn.00444df8
xor esi, esi
cmp byte [ebp + 0x53], 0
mov byte [ebp + 0x65], 0
jne 0x462c6d
mov eax, dword [ebp - 8]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
mov dword [ebp + 0x2c], edi
call fcn.00458b67
push edi
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.00447e0d
push dword [ebp + 0xc]
call fcn.004132c6
add esp, 0x10
push edi
push 0x80
push 3
push edi
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x2c]
call fcn.00405c00
mov esi, dword [ebp + 0x2c]
cmp esi, edi
jne 0x462b49
lea ecx, [ebp + 0x2c]
call fcn.00402cc5
jmp 0x462f16
push 2
xor edi, edi
push edi
push edi
push esi
call fcn.0043fb25
push 1
push edi
push edi
push esi
call fcn.0043fb25
push edi
push edi
push edi
push esi
mov ebx, eax
call fcn.0043fb25
add esp, 0x30
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x4c]
call fcn.00444e3a
mov edi, dword [ebp + 0x4c]
push 0
lea eax, [ebp]
push eax
push ebx
mov byte [edi + 2], 0
mov byte [edi + 1], 0
push edi
mov byte [edi], 0
or dword [ebp], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp]
test eax, eax
mov esi, eax
jl 0x462b3c
and dword [ebp + 0x34], 0
add eax, edi
cmp byte [ebp + 0x4b], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
jne 0x462bc3
cmp dword [ebp + 0x60], 0x4b0
jne 0x462bed
push 2
push 0x4c8390
push edi
call fcn.0043e88e
add esp, 0xc
test eax, eax
jne 0x462be7
mov dword [ebp + 0x60], 0x4b0
mov dword [ebp + 0x34], 2
jmp 0x462c44
cmp byte [ebp + 0x4b], 0
jne 0x462bf6
cmp dword [ebp + 0x60], 0x4b1
jne 0x462c19
push 2
push 0x4c8394
push edi
call fcn.0043e88e
add esp, 0xc
test eax, eax
jne 0x462c13
mov dword [ebp + 0x60], 0x4b1
jmp 0x462bde
cmp byte [ebp + 0x4b], 0
jne 0x462c22
cmp dword [ebp + 0x30], 0xfde9
jne 0x462c59
push 3
push 0x4c8398
push edi
call fcn.0043e88e
add esp, 0xc
test eax, eax
jne 0x462c59
mov dword [ebp + 0x30], 0xfde9
mov dword [ebp + 0x34], 3
mov eax, dword [ebp + 0x34]
sub ebx, eax
add ebx, 3
push ebx
add eax, edi
push eax
push edi
call fcn.0041457b
add esp, 0xc
sub esi, dword [ebp + 0x34]
jns 0x462c60
xor esi, esi
lea ecx, [ebp + 0x2c]
call fcn.00402cc5
jmp 0x462d97
cmp byte [ebp + 0x6f], 0
je 0x462d53
mov ecx, dword [ebp + 0x28]
push edi
lea eax, [ebp + 0xc]
push eax
call fcn.00402ef7
mov ebx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [ebx]
push eax
call fcn.00414a48
add esp, 4
test al, al
je 0x462cd0
lea eax, [ebp - 8]
push eax
lea eax, [ebp]
push eax
mov dword [ebp], ebx
call fcn.004483d5
test eax, eax
pop ecx
pop ecx
je 0x462cd0
mov eax, dword [ebp]
cmp word [eax], di
jne 0x462cd0
cmp byte [ebp + 0x6f], 3
mov ebx, dword [ebp - 8]
mov eax, ebx
je 0x462cee
mov edi, dword [ebp + 0x4c]
mov dword [ebp - 4], ebx
or esi, 0xffffffff
jmp 0x462da4
mov ecx, dword [ebp + 0x28]
push 0
push 0xffffffffffffffff
push 0
push ebx
call fcn.00410e94
mov ebx, eax
test ebx, ebx
je 0x462d34
cmp byte [ebp + 0x6f], 3
mov eax, dword [ebx + 4]
jne 0x462d02
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00449891
pop ecx
pop ecx
mov esi, eax
mov byte [ebp + 0x65], 2
jmp 0x462d3e
mov esi, dword [ebx + 0x10]
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x4c]
call fcn.00444e3a
mov edi, dword [ebp + 0x4c]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.004ae820
push esi
push dword [ebx + 4]
push edi
call fcn.004145c5
add esp, 0x18
mov byte [ebp + 0x65], 1
jmp 0x462d41
push 8
lea ecx, [ebp + 0x4c]
call fcn.00444e3a
mov edi, dword [ebp + 0x4c]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.004ae820
add esp, 0xc
jmp 0x462d97
cmp dword [ebp + 0x54], edi
je 0x462d80
push 0xffffffffffffffff
push dword [ebp + 0xc]
lea ecx, [ebp + 0x4c]
call fcn.00445090
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x4c]
call fcn.00444e3a
jmp 0x462d90
push dword [ebp + 0xc]
lea eax, [ebp + 0x4c]
push eax
call fcn.00449891
pop ecx
pop ecx
mov esi, eax
mov edi, dword [ebp + 0x4c]
mov byte [ebp + 0x65], 2
test esi, esi
mov dword [ebp - 4], edi
jl 0x462f16
mov ebx, edi
cmp byte [ebp + 0x4b], 0
je 0x462e05
cmp byte [ebp + 0x65], 0
je 0x462e05
push 2
push 0x4c8390
push ebx
call fcn.0043e88e
add esp, 0xc
test eax, eax
jne 0x462dcd
mov dword [ebp + 0x60], 0x4b0
jmp 0x462e05
push 2
push 0x4c8394
push ebx
call fcn.0043e88e
add esp, 0xc
test eax, eax
jne 0x462dea
mov dword [ebp + 0x60], 0x4b1
jmp 0x462e05
push 3
push 0x4c8398
push ebx
call fcn.0043e88e
add esp, 0xc
test eax, eax
jne 0x462e05
mov dword [ebp + 0x30], 0xfde9
cmp esi, 0xffffffff
jne 0x462e25
cmp dword [ebp + 0x60], 0
push ebx
je 0x462e1d
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x462e25
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x34], ebx
mov dword [ebp - 0x24], ebx
call fcn.00444f6c
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x44], eax
jne 0x462ec3
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x10], eax
jne 0x462ec3
cmp byte [ebp + 0x66], 0
je 0x462e65
push 0
lea eax, [ebp + 0x38]
push eax
push esi
push ebx
push dword [ebp + 0x38]
push dword [ebp + 0x28]
call fcn.0045213e
add esp, 0x18
jmp 0x462ea7
cmp byte [ebp + 0x7b], 0
jne 0x462e77
push esi
push ebx
lea ecx, [ebp + 0x40]
call fcn.0043e647
jmp 0x462ea7
cmp dword [ebp - 0x10], 0
jne 0x462e90
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.0044986b
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x462e9c
cmp dword [ebp + 0x54], 0
je 0x462e9b
push dword [ebp + 0xc]
jmp 0x462e9c
push ebx
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x28]
call fcn.00444692
lea ecx, [ebp + 0x68]
call fcn.0043e825
lea ecx, [ebp + 0x4c]
call fcn.0043e825
lea ecx, [ebp + 0x40]
call fcn.00402cc5
xor esi, esi
jmp 0x462f29
cmp dword [ebp + 0x60], 0x4b1
jne 0x462edf
push esi
push ebx
mov dword [ebp + 0x60], 0x4b0
call fcn.00442e90
pop ecx
pop ecx
and esi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x462f5d
push dword [ebp + 0x38]
call fcn.004132c6
pop ecx
xor ebx, ebx
push ebx
push 0x80
push 4
push ebx
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x40]
call fcn.00405c00
cmp dword [ebp + 0x40], ebx
jne 0x462f5d
lea ecx, [ebp + 0x68]
call fcn.0043e825
lea ecx, [ebp + 0x4c]
call fcn.0043e825
lea ecx, [ebp + 0x40]
call fcn.00402cc5
xor esi, esi
inc esi
lea ecx, [ebp + 0x38]
call fcn.0043e825
lea ecx, [ebp - 0x2c]
call fcn.0043e825
lea ecx, [ebp + 0xc]
call fcn.0043e825
lea ecx, [ebp + 0x20]
call fcn.0043e825
lea ecx, [ebp - 0x54]
call fcn.0043e825
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
and dword [ebp + 0x54], 0
mov eax, 0x3a8
cmp dword [ebp + 0x44], eax
mov ebx, 0x3b6
jne 0x462f75
cmp dword [ebp + 0x30], ebx
je 0x462f7f
cmp dword [ebp + 0x30], eax
jne 0x462ff2
cmp dword [ebp + 0x44], ebx
jne 0x462ff2
cmp byte [ebp + 0x3f], 0
je 0x462f89
mov byte [ebp + 0x3f], 3
lea ecx, [ebp + 0x2c]
call fcn.00444df8
xor eax, eax
cmp dword [ebp + 0x44], ebx
sete al
push eax
lea eax, [ebp + 0x2c]
push eax
push dword [ebp - 4]
call fcn.0044991e
mov eax, edi
mov edi, dword [ebp + 0x2c]
add esp, 0xc
push edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp + 0x3f], 3
mov esi, eax
mov dword [ebp + 0x34], edi
mov dword [ebp - 4], edi
jne 0x462fea
cmp byte [ebp + 0x7b], 0
jne 0x462fea
test esi, esi
jle 0x462fdd
push esi
push edi
lea ecx, [ebp + 0x40]
call fcn.0043e647
lea ecx, [ebp + 0x2c]
call fcn.0043e825
jmp 0x46319b
lea ecx, [ebp + 0x2c]
call fcn.0043e825
mov eax, esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
cmp dword [ebp + 0x60], 0
jne 0x46303a
lea edi, [esi + 0xa]
lea eax, [edi + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.00444fb1
mov ebx, dword [ebp + 0x68]
push edi
push ebx
push esi
push dword [ebp - 4]
push 0
push dword [ebp + 0x30]
call dword [0x4dcbe4]
mov edi, eax
test edi, edi
jge 0x46302c
xor edi, edi
lea esi, [edi + edi]
and word [ebx + esi], 0
mov dword [ebp + 0x34], ebx
mov dword [ebp - 0x24], ebx
cmp dword [ebp + 0x10], 0x4b1
jne 0x46304e
push esi
push dword [ebp + 0x34]
call fcn.00442e90
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x10], eax
jle 0x4630e5
cmp byte [ebp + 0x66], al
je 0x463082
push eax
lea eax, [ebp + 0x38]
push eax
push esi
push dword [ebp + 0x34]
push dword [ebp + 0x38]
push dword [ebp + 0x28]
call fcn.0045213e
add esp, 0x18
lea ecx, [ebp + 0x54]
call fcn.0043e825
jmp 0x462ea7
cmp byte [ebp + 0x7b], 0
jne 0x4630ad
cmp esi, eax
jle 0x46319b
cmp dword [ebp + 0x1c], 0
je 0x4630a4
push dword [ebp + 0x24]
lea ecx, [ebp + 0x40]
push dword [ebp + 0x1c]
call fcn.0043e647
push esi
push dword [ebp + 0x34]
jmp 0x463151
cmp dword [ebp - 0x10], eax
jne 0x4630ea
lea ecx, [ebp + 0x78]
call fcn.00444f6c
push edi
push dword [ebp + 0x34]
lea eax, [ebp + 0x78]
push eax
call fcn.0044986b
mov ecx, dword [ebp + 0x28]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x38]
call fcn.00444692
lea ecx, [ebp + 0x78]
call fcn.0043e825
jmp 0x46319b
cmp dword [ebp - 0x10], eax
je 0x4630f2
push dword [ebp - 0x24]
jmp 0x463190
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
lea edi, [esi + esi*2]
lea edi, [edi + edi + 0xa]
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x54]
call fcn.00444e3a
xor ebx, ebx
push ebx
push ebx
push edi
mov edi, dword [ebp + 0x54]
push edi
push esi
push dword [ebp + 0x34]
push ebx
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
cmp esi, ebx
jge 0x46312d
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [edi + esi], 0
jne 0x46315b
cmp esi, ebx
jle 0x46319b
cmp dword [ebp + 0x1c], 0
je 0x46314f
push dword [ebp + 0x24]
lea ecx, [ebp + 0x40]
push dword [ebp + 0x1c]
call fcn.0043e647
push esi
push edi
lea ecx, [ebp + 0x40]
call fcn.0043e647
jmp 0x46319b
cmp byte [ebp + 0x66], 0
je 0x46317f
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
lea ecx, [ebp + 0x38]
push ecx
push eax
push edi
push dword [ebp + 0x38]
push dword [ebp + 0x28]
call fcn.0045213e
add esp, 0x18
jmp 0x46319b
push esi
lea eax, [ebp + 0x68]
push edi
push eax
call fcn.0044980a
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x28]
call fcn.00444692
xor esi, esi
cmp dword [ebp + 0x40], esi
je 0x4631ab
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x54]
call fcn.0043e825
lea ecx, [ebp + 0x68]
call fcn.0043e825
lea ecx, [ebp + 0x4c]
call fcn.0043e825
lea ecx, [ebp + 0x40]
call fcn.00402cc5
jmp 0x462f29