Function at 0x10084541
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xf8
push ebx
push esi
push edi
mov dword [ebp + 0x28], ecx
push ecx
lea ecx, [ebp - 0x78]
call fcn.10048516
lea eax, [ebp + 0x78]
push eax
call fcn.1003f9c4
pop ecx
lea ecx, [ebp + 0x20]
call fcn.10046123
lea ecx, [ebp - 4]
call fcn.10046123
lea ecx, [ebp - 0x44]
call fcn.10046123
lea ecx, [ebp + 0x2c]
call fcn.10046123
mov eax, dword [ebp + 0x78]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x78]
call fcn.1005b693
push 0
lea ecx, [ebp + 0x20]
push ecx
push eax
call fcn.1004907a
mov esi, dword [ebp + 0x20]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor edi, edi
test ax, ax
mov byte [ebp + 0x33], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x53], 0
mov ecx, esi
je 0x100845e8
call fcn.10002df6
test al, al
je 0x100845d2
mov edi, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x100845c7
test edi, edi
je 0x100845e8
and word [edi], ax
mov esi, dword [ebp + 0x20]
inc edi
inc edi
test edi, edi
mov eax, esi
mov dword [ebp + 0x78], eax
je 0x1008466b
cmp word [esi], 0x2a
jne 0x1008466b
cmp word [eax + 2], 0x2d
je 0x1008466b
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.10048195
add esp, 0xc
test al, al
je 0x1008461b
mov byte [ebp + 0x5b], 1
jmp 0x1008465f
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.10048195
add esp, 0xc
test al, al
je 0x10084638
mov byte [ebp + 0x33], 1
jmp 0x1008465f
push 3
lea eax, [ebp + 0x78]
push eax
push 0x100d23cc
call fcn.10048195
add esp, 0xc
test al, al
je 0x10084655
mov byte [ebp + 0x53], 1
jmp 0x1008465f
lea eax, [ebp + 0x78]
push eax
call fcn.10008e60
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0x20]
je 0x100845f7
xor ebx, ebx
cmp edi, ebx
mov byte [ebp + 0x4b], 0
mov byte [ebp - 0x1d], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x7b], 0
mov byte [ebp - 0x1e], 0
mov byte [ebp + 0x5a], 0
je 0x100846a9
push edi
lea ecx, [ebp + 4]
call fcn.100501eb
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 4]
mov dword [ebp + 4], ecx
lea ecx, [ebp + 4]
mov dword [ebp + 0x20], eax
call fcn.1003f96c
mov esi, dword [ebp + 0x20]
cmp byte [ebp + 0x53], 0
je 0x10085541
mov ecx, dword [ebp + 0x28]
push ebx
lea eax, [ebp + 0x20]
push eax
call fcn.10002f54
mov eax, dword [ebp + 0x20]
or dword [ebp + 8], 0xffffffff
push 0x2a
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x78]
push 0x7c
push eax
call fcn.1003ff40
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x100846ea
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x78], eax
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.10045b88
add esp, 4
test al, al
je 0x1008470d
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.1007ed98
pop ecx
pop ecx
jmp 0x10084712
cmp cx, bx
jne 0x10084715
mov dword [ebp + 0x78], ebx
mov ecx, dword [ebp + 0x28]
xor esi, esi
inc esi
push esi
push ebx
lea eax, [ebp + 0x2c]
push eax
push dword [ebp + 0x68]
call fcn.10058f7c
mov eax, dword [ebp + 0x2c]
cmp word [eax], 0x2c
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x50], ebx
jne 0x10084747
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.1003f9c4
mov eax, dword [ebp + 0x68]
xor edx, edx
mov dx, word [eax]
cmp dx, bx
pop ecx
mov dword [ebp + 0x54], edx
je 0x10085537
cmp dx, 0x2b
mov edi, 0x3a0
jne 0x10084784
lea ecx, [eax + 2]
cmp word [ecx], dx
jne 0x100847b4
mov edx, 0x3a3
mov eax, ecx
mov dword [ebp + 0x54], edx
jmp 0x100847b4
cmp dx, 0x2a
jne 0x10084799
lea ecx, [eax + 2]
cmp word [ecx], dx
jne 0x100847b4
mov edx, edi
mov eax, ecx
mov dword [ebp + 0x54], edx
cmp dx, di
jne 0x100847a6
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], ebx
jmp 0x100847b4
cmp dx, 0x3f
jne 0x100847b4
or dword [ebp + 0x5c], 0xffffffff
or dword [ebp + 0x60], 0xffffffff
inc eax
inc eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.1003f9c4
cmp dx, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x100847d6
mov dword [ebp + 0x4c], 0x3f
jmp 0x100847eb
cmp dx, 0x3a3
mov dword [ebp + 0x4c], edx
je 0x100847eb
cmp dx, di
je 0x100847eb
cmp dx, 0x3f
jne 0x10084851
cmp word [esi], 0x2c
je 0x10084857
mov edi, esi
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp - 0x1c], edi
call fcn.100a1095
mov esi, dword [ebp + 0x68]
cmp word [esi], bx
pop ecx
je 0x10084811
mov word [esi], bx
inc esi
inc esi
mov dword [ebp + 0x68], esi
cmp word [ebp + 0x4c], 0x3f
jne 0x1008485c
jmp 0x1008482b
mov ax, word [edi]
cmp ax, 0x2b
je 0x10084832
cmp ax, 0x2d
je 0x1008483a
inc edi
inc edi
cmp word [edi], bx
jne 0x1008481a
jmp 0x1008485c
lea eax, [edi + 2]
mov dword [ebp - 0x30], eax
jmp 0x1008483d
mov dword [ebp - 0x30], edi
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.10049634
pop ecx
pop ecx
mov word [edi], bx
jmp 0x1008485c
cmp word [esi], 0x2c
jne 0x1008485c
inc esi
inc esi
mov dword [ebp + 0x68], esi
or dword [ebp - 0x14], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
or dword [ebp - 8], 0xffffffff
xor eax, eax
inc eax
cmp word [esi], 0x2a
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0xc], 0xfffe0000
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x38], eax
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x3c], ebx
jne 0x1008489e
inc esi
inc esi
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x68], esi
cmp word [esi], 0x26
jne 0x100848e0
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x3c], 3
call fcn.100a1095
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
pop ecx
je 0x100848c6
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x68], eax
mov ecx, dword [ebp + 0x28]
push ebx
push 0xffffffffffffffff
push ebx
push esi
call fcn.10010cdd
cmp eax, ebx
mov dword [ebp + 0xc], eax
je 0x10085537
jmp 0x100848f7
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.1007edb8
test eax, eax
pop ecx
pop ecx
jle 0x10085537
cmp word [ebp + 0x54], 0x2d
jne 0x10084907
mov dword [ebp + 0x54], 0x2b
jmp 0x10084915
cmp word [ebp + 0x54], 0x3c
jne 0x10084927
mov dword [ebp + 0x54], 0x3e
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
neg eax
adc ecx, ebx
neg ecx
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov ecx, dword [ebp + 0x68]
xor eax, eax
cmp word [ecx], 0x2d
sete al
cmp eax, ebx
mov dword [ebp + 0x18], eax
je 0x1008493e
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.10053a89
test eax, eax
pop ecx
pop ecx
jle 0x10085537
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
jle 0x10085537
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x40
jne 0x1008498c
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.10053a89
test eax, eax
pop ecx
pop ecx
jle 0x10085537
cmp dword [ebp + 0x38], ebx
jle 0x10085537
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x2f
jne 0x100849b5
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.10053a89
test eax, eax
pop ecx
pop ecx
jle 0x10085537
cmp dword [ebp + 0x64], ebx
jle 0x10085537
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
je 0x100849c1
add dword [ebp + 0x68], 2
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
call fcn.1007edb8
cmp dword [ebp - 0x3c], ebx
pop ecx
pop ecx
jl 0x10085537
jg 0x100849ea
cmp dword [ebp - 0x40], ebx
jb 0x10085537
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.1007edb8
pop ecx
pop ecx
mov edi, 0x100e3d7c
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x28]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x20]
call fcn.10010cdd
mov esi, eax
cmp esi, ebx
jne 0x10084a20
push edi
jmp 0x10085531
cmp dword [ebp + 0x78], ebx
mov dword [ebp - 0x2c], ebx
je 0x10084a3a
mov ecx, dword [ebp + 0x28]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x78]
call fcn.10010cdd
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [ebp - 0x3c], edx
mov dword [ebp], ecx
jg 0x1008552c
jl 0x10084a57
cmp dword [ebp - 0x40], eax
jae 0x1008552c
cmp ecx, ebx
jle 0x1008552c
cmp dword [ebp - 0x10], ebx
jg 0x10084a71
jl 0x10084a6b
cmp dword [ebp - 0x14], ebx
ja 0x10084a71
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
sub ecx, dword [ebp - 0x40]
mov esi, dword [esi + 4]
mov eax, ecx
cdq
cmp dword [ebp - 0x10], edx
mov dword [ebp - 0x30], esi
jl 0x10084a8f
jg 0x10084a89
cmp dword [ebp - 0x14], eax
jbe 0x10084a8f
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov dword [ebp + 0x40], ecx
jle 0x10084a9c
mov dword [ebp + 0x40], eax
cmp dword [ebp + 0x40], ebx
jle 0x1008552c
mov ecx, dword [ebp + 0x54]
mov edi, dword [ebp - 0x40]
mov eax, ecx
or eax, 0x20
add esi, edi
cmp ax, 0x68
push 0x6f
pop edx
je 0x10084ac6
cmp ax, 0x6e
je 0x10084ac6
cmp ax, dx
jne 0x10084acb
mov ecx, edx
mov dword [ebp + 0x54], ecx
cmp cx, 0x3a9
jne 0x10084adb
mov byte [ebp + 0x7b], 9
jmp 0x10084b94
cmp cx, 0x3f
jne 0x10084aea
mov byte [ebp + 0x7b], 8
jmp 0x10084b94
cmp cx, 0x7c
jne 0x10084af9
mov byte [ebp + 0x7b], 7
jmp 0x10084b94
cmp cx, 0x26
jne 0x10084b08
mov byte [ebp + 0x7b], 6
jmp 0x10084b94
cmp cx, 0x3a0
jne 0x10084b1d
cmp dword [ebp + 0x18], ebx
sete al
dec al
and al, 5
add al, 5
jmp 0x10084b3b
cmp cx, 0x2a
jne 0x10084b2d
cmp dword [ebp + 0x18], ebx
setne al
add al, 0xb
jmp 0x10084b3b
cmp cx, 0x2f
jne 0x10084b40
cmp dword [ebp + 0x18], ebx
setne al
add al, 0xe
mov byte [ebp + 0x7b], al
jmp 0x10084b94
cmp cx, 0x3a3
jne 0x10084b4d
mov byte [ebp + 0x7b], 4
jmp 0x10084b94
cmp cx, 0x2d
jne 0x10084b59
mov byte [ebp + 0x7b], 0xd
jmp 0x10084b94
cmp cx, 0x2e
jne 0x10084b65
mov byte [ebp + 0x7b], 3
jmp 0x10084b94
cmp cx, 0x3e
jne 0x10084b71
mov byte [ebp + 0x7b], 2
jmp 0x10084b94
cmp cx, 0x5e
sete byte [ebp + 0x7b]
cmp byte [ebp + 0x7b], 0
jne 0x10084b94
cmp cx, 0x2b
je 0x10084b94
cmp cx, 0x23
je 0x10084b94
cmp cx, dx
jne 0x1008552c
cmp cx, dx
mov dword [ebp - 0x34], edi
jne 0x10084bb1
mov eax, edi
cdq
cmp edx, dword [ebp + 0x14]
jl 0x10084bb1
jg 0x10084bab
cmp eax, dword [ebp + 0x10]
jbe 0x10084bb1
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.1007edb8
cmp dword [ebp - 0x28], ebx
pop ecx
pop ecx
jne 0x10084bd6
cmp dword [ebp - 0x24], ebx
jne 0x10084bd9
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jl 0x10084bea
jg 0x10084be2
cmp dword [ebp - 0x28], ebx
jb 0x10084bea
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
jmp 0x10084bf7
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
neg ebx
adc edi, 0
neg edi
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.1007edb8
cmp dword [ebp - 8], 0
pop ecx
pop ecx
jg 0x10084c53
jl 0x10084c14
cmp dword [ebp - 0xc], 0
ja 0x10084c53
cmp dword [ebp - 0xc], 0xfffe0000
jne 0x10084c23
cmp dword [ebp - 8], 0xffffffff
je 0x10084c3a
mov eax, dword [ebp]
sub eax, dword [ebp - 0x34]
push edi
cdq
push ebx
push edx
push eax
call fcn.100b4150
cdq
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jg 0x10084c53
jl 0x10084c48
cmp dword [ebp - 0xc], 0
ja 0x10084c53
and dword [ebp - 8], 0
mov dword [ebp - 0xc], 1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.1007edb8
cmp dword [ebp - 0x4c], 0
pop ecx
pop ecx
jne 0x10084c7a
cmp dword [ebp - 0x48], 0
jne 0x10084c7a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp - 0x30]
mov eax, ecx
and eax, 3
sub ecx, eax
test byte [ebp + 0x3c], 2
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x6c], eax
lea eax, [ecx + edx]
mov dword [ebp - 0x34], esi
mov dword [ebp + 0x68], eax
je 0x10084ca8
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 8]
test eax, eax
mov edi, esi
mov dword [ebp + 0x24], edi
jl 0x10084cba
lea edi, [edx + eax]
mov dword [ebp + 0x24], edi
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x10084cc7
mov edi, dword [eax + 4]
mov dword [ebp + 0x24], edi
movzx ebx, word [ebp + 0x1c]
mov eax, dword [ebp + 0x40]
cdq
idiv ebx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], ecx
mov byte [ebp + 0x6e], cl
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x7c], edx
mov eax, ebx
cdq
idiv ecx
lea edx, [eax - 1]
imul ecx, edx
mov dword [ebp - 0x5c], edx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x18], ecx
mov ecx, eax
imul ecx, dword [ebp + 0x38]
mov dword [ebp + 4], eax
mov eax, ebx
sub eax, ecx
cmp ebx, 8
mov dword [ebp - 0x2c], eax
jl 0x10084d1a
mov byte [ebp + 0x5a], 3
jmp 0x10084d2c
cmp ebx, 4
jl 0x10084d25
mov byte [ebp + 0x5a], 2
jmp 0x10084d2c
cmp ebx, 2
setge byte [ebp + 0x5a]
mov eax, dword [ebp + 0x54]
cmp ax, 0x3e
je 0x10084d52
cmp ax, 0x2e
je 0x10084d52
cmp ax, 0x26
je 0x10084d52
cmp ax, 0x7c
je 0x10084d52
cmp word [ebp + 0x4c], 0x3f
mov byte [ebp + 0x4b], 1
jne 0x10084d56
mov byte [ebp + 0x4b], 0
push ebx
lea ecx, [ebp - 0x10]
call fcn.10045fcc
mov eax, dword [ebp + 0x64]
sub eax, ebx
add dword [ebp - 0xc], 0xffffffff
mov dword [ebp + 0x18], eax
adc dword [ebp - 8], 0xffffffff
js 0x1008521b
jle 0x1008551d
cmp word [ebp + 0x54], 0x23
jne 0x10084dfc
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp + 0x68]
je 0x10084db6
mov ecx, dword [ebp + 0x40]
lea edi, [eax + ecx]
jmp 0x10084dad
mov edx, dword [ebp + 0x1c]
dec edx
js 0x10084da7
inc edx
mov bl, byte [esi]
mov cl, byte [eax]
mov byte [eax], bl
inc eax
mov byte [esi], cl
inc esi
dec edx
jne 0x10084d9a
add eax, dword [ebp + 0x64]
add esi, dword [ebp + 0x64]
cmp eax, edi
jb 0x10084d93
jmp 0x100854ed
mov ecx, dword [ebp - 0x80]
lea edx, [eax + ecx]
jmp 0x10084dcc
mov edi, dword [esi]
mov ecx, dword [eax]
mov dword [eax], edi
add eax, 4
mov dword [esi], ecx
add esi, 4
cmp eax, edx
jb 0x10084dbe
cmp dword [ebp - 0x6c], 0
jle 0x100854ed
mov ecx, dword [ebp - 0x6c]
dec ecx
js 0x100854ed
sub esi, eax
lea edi, [ecx + 1]
mov cl, byte [eax]
mov dl, byte [esi + eax]
mov byte [esi + eax], cl
mov byte [eax], dl
inc eax
dec edi
jne 0x10084de9
jmp 0x100854ed
cmp word [ebp + 0x54], 0x6f
jne 0x10084f26
cmp dword [ebp + 0x18], 0
je 0x10084e94
mov edi, dword [ebp + 0x40]
mov eax, edi
cdq
idiv dword [ebp + 0x64]
mov ecx, dword [ebp + 0x68]
add edi, ecx
mov dword [ebp], edi
dec eax
imul eax, dword [ebp + 0x64]
add eax, esi
cmp ecx, edi
jmp 0x10084e8a
cmp dword [ebp - 0x5c], 0
jl 0x10084e7e
mov edi, dword [ebp + 4]
mov eax, dword [ebp - 0x5c]
dec edi
inc eax
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, esi
test edi, edi
jl 0x10084e76
mov edx, dword [ebp + 0x38]
lea ecx, [edi + 1]
dec edx
mov dword [ebp + 8], ecx
test edx, edx
jl 0x10084e6a
lea ecx, [edx + 1]
mov dword [ebp + 0xc], ecx
mov bl, byte [eax]
mov cl, byte [esi]
mov byte [esi], bl
inc esi
mov byte [eax], cl
inc eax
dec dword [ebp + 0xc]
jne 0x10084e5b
mov ecx, dword [ebp + 0x38]
add ecx, ecx
sub eax, ecx
dec dword [ebp + 8]
jne 0x10084e51
add esi, dword [ebp - 0x2c]
dec dword [ebp + 0x34]
jne 0x10084e3e
mov ecx, dword [ebp + 0x4c]
add ecx, dword [ebp + 0x18]
sub eax, dword [ebp + 0x18]
cmp ecx, dword [ebp]
mov dword [ebp + 0x4c], ecx
jb 0x10084e2d
jmp 0x100854ed
cmp dword [ebp + 0x38], 1
mov eax, dword [ebp - 0x60]
jg 0x10084ed2
dec eax
js 0x100854ed
mov edi, dword [ebp + 4]
dec edi
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x18]
add eax, esi
test edi, edi
jl 0x10084ec5
lea edx, [edi + 1]
mov bl, byte [eax]
mov cl, byte [esi]
mov byte [esi], bl
inc esi
mov byte [eax], cl
dec eax
dec edx
jne 0x10084eb8
add esi, dword [ebp - 0x2c]
dec dword [ebp + 0xc]
jne 0x10084eac
jmp 0x100854ed
dec eax
js 0x100854ed
mov edi, dword [ebp + 4]
dec edi
inc eax
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, esi
test edi, edi
jl 0x10084f19
mov edx, dword [ebp + 0x38]
lea ecx, [edi + 1]
dec edx
mov dword [ebp + 8], ecx
test edx, edx
jl 0x10084f0d
lea ecx, [edx + 1]
mov dword [ebp + 0xc], ecx
mov bl, byte [eax]
mov cl, byte [esi]
mov byte [esi], bl
inc esi
mov byte [eax], cl
inc eax
dec dword [ebp + 0xc]
jne 0x10084efe
mov ecx, dword [ebp + 0x38]
add ecx, ecx
sub eax, ecx
dec dword [ebp + 8]
jne 0x10084ef4
add esi, dword [ebp - 0x2c]
dec dword [ebp + 0x34]
jne 0x10084ee1
jmp 0x100854ed
mov al, byte [ebp + 0x10]
mov byte [ebp + 0x6f], al
mov eax, dword [ebp - 0x7c]
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x68]
xor edx, edx
add ecx, dword [ebp + 0x40]
mov dword [ebp + 0x44], eax
movzx eax, byte [ebp + 0x5a]
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x4c], ecx
mov dword [ebp], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
dec eax
je 0x1008537a
dec eax
je 0x10085280
dec eax
je 0x1008508a
and byte [ebp + 0x6f], 7
mov bl, 8
sub bl, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
jae 0x1008549e
movzx ecx, byte [ebp + 0x7b]
mov dword [ebp + 8], ecx
jmp 0x10084f93
mov ecx, dword [ebp + 8]
cmp dword [ebp + 0x3c], 0
je 0x10084fa7
mov eax, dword [ebp + 0x44]
mov dl, byte [eax]
add eax, dword [ebp + 0x64]
mov byte [ebp + 0x6e], dl
mov dword [ebp + 0x44], eax
cmp ecx, 0xf
ja case.default.0x10084fb0
jmp dword [ecx*4 + 0x10086019]
mov al, byte [esi]
add al, byte [ebp + 0x6e]
jmp 0x1008504f
mov al, byte [esi]
sub al, byte [ebp + 0x6e]
jmp 0x1008504f
mov al, byte [ebp + 0x6e]
imul byte [esi]
mov byte [edi], al
mov al, byte [ebp + 0x6e]
imul byte [esi]
jmp 0x1008504f
movzx eax, byte [esi]
movzx ecx, byte [ebp + 0x6e]
cdq
idiv ecx
mov byte [edi], al
movsx eax, byte [esi]
movsx ecx, byte [ebp + 0x6e]
cdq
idiv ecx
jmp 0x1008504f
cmp word [ebp + 0x54], 0x5e
jne case.default.0x10084fb0
mov al, byte [esi]
xor al, byte [ebp + 0x6e]
jmp 0x1008504f
mov al, byte [esi]
mov dl, al
mov cl, bl
shl dl, cl
mov cl, byte [ebp + 0x6f]
shr al, cl
or dl, al
mov byte [edi], dl
jmp case.default.0x10084fb0
mov al, byte [ebp + 0x6e]
mov byte [esi], al
jmp case.default.0x10084fb0
movsx eax, byte [esi]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x10084fb0
movzx eax, byte [esi]
jmp 0x1008502d
movsx eax, byte [esi]
push dword [ebp + 0x60]
cdq
push dword [ebp + 0x5c]
push edx
push eax
call fcn.100b4200
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x10084fb0
mov al, byte [ebp + 0x6e]
and al, byte [esi]
jmp 0x1008504f
mov al, byte [esi]
or al, byte [ebp + 0x6e]
mov byte [edi], al
jmp case.default.0x10084fb0
mov al, byte [ebp + 0x6e]
test byte [esi], al
je case.default.0x10084fb0
mov eax, esi
sub eax, dword [ebp - 0x30]
jmp 0x10085211
mov al, byte [ebp + 0x6e]
test byte [esi], al
je case.default.0x10084fb0
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x64]
add edi, dword [ebp + 0x64]
cmp esi, dword [ebp + 0x4c]
mov dword [ebp + 0x34], edi
jb 0x10084f90
jmp 0x1008549e
and byte [ebp + 0x6f], 0x3f
mov al, 0x40
sub al, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
mov byte [ebp + 0x5b], al
jae 0x1008549e
movzx ecx, byte [ebp + 0x7b]
mov ebx, dword [ebp + 0x14]
mov dword [ebp + 8], ecx
jmp 0x100850ae
mov ecx, dword [ebp + 8]
cmp dword [ebp + 0x3c], 0
je 0x100850c8
mov eax, dword [ebp + 0x44]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
add eax, dword [ebp + 0x64]
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x44], eax
cmp ecx, 0xf
ja case.default.0x100850d1
jmp dword [ecx*4 + 0x10086059]
mov eax, dword [esi]
add eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
adc ecx, ebx
jmp 0x100851f3
mov eax, dword [esi]
sub eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
sbb ecx, ebx
jmp 0x100851f3
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.100b4200
mov dword [edi], eax
mov dword [edi + 4], edx
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.100b4200
jmp 0x1008513a
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.100b4650
mov dword [edi], eax
mov dword [edi + 4], edx
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.100b4150
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.default.0x100850d1
cmp word [ebp + 0x54], 0x5e
jne case.default.0x100850d1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor eax, dword [ebp + 0x10]
xor ecx, ebx
jmp 0x100851f3
mov edi, dword [esi]
mov ebx, dword [esi + 4]
movzx ecx, byte [ebp + 0x5b]
mov eax, edi
mov edx, ebx
call fcn.100b62f0
mov ecx, edx
mov dword [ebp - 0x3c], ecx
movzx ecx, byte [ebp + 0x6e]
mov dword [ebp - 0x88], eax
mov eax, edi
mov edx, ebx
call fcn.100b6310
mov ecx, dword [ebp - 0x88]
mov edi, dword [ebp + 0x34]
mov ebx, dword [ebp + 0x14]
or ecx, eax
mov eax, dword [ebp - 0x3c]
or eax, edx
mov dword [edi], ecx
mov dword [edi + 4], eax
jmp case.default.0x100850d1
mov eax, dword [ebp + 0x10]
mov dword [esi], eax
mov dword [esi + 4], ebx
jmp case.default.0x100850d1
mov eax, dword [esi]
add dword [ebp + 0x5c], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x60], eax
jmp case.default.0x100850d1
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [esi + 4]
push dword [esi]
call fcn.100b4200
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x100850d1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, dword [ebp + 0x10]
and ecx, ebx
jmp 0x100851f3
mov eax, dword [esi]
mov ecx, dword [esi + 4]
or eax, dword [ebp + 0x10]
or ecx, ebx
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp case.default.0x100850d1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, dword [ebp + 0x10]
and ecx, ebx
or eax, ecx
je case.default.0x100850d1
mov eax, esi
sub eax, dword [ebp - 0x30]
cdq
idiv dword [ebp + 0x1c]
add eax, dword [ebp - 0x50]
cdq
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
xor esi, esi
cmp dword [ebp - 0x1c], esi
je 0x1008523b
push str._I64d
push dword [ebp - 0x1c]
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [ebp + 0x28]
call fcn.100487c8
add esp, 0x14
lea ecx, [ebp - 0x10]
call fcn.1003f96c
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10085d6f
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, dword [ebp + 0x10]
and ecx, ebx
or eax, ecx
je case.default.0x100850d1
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x64]
add edi, dword [ebp + 0x64]
cmp esi, dword [ebp + 0x4c]
mov dword [ebp + 0x34], edi
jb 0x100850ab
jmp 0x1008549e
and byte [ebp + 0x6f], 0x1f
mov cl, 0x20
sub cl, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
mov byte [ebp + 0x5b], cl
jae 0x1008549e
mov ebx, dword [ebp - 0x54]
jmp 0x1008529d
mov cl, byte [ebp + 0x5b]
cmp dword [ebp + 0x3c], 0
je 0x100852b1
mov eax, dword [ebp + 0x44]
mov ebx, dword [eax]
add eax, dword [ebp + 0x64]
mov dword [ebp - 0x54], ebx
mov dword [ebp + 0x44], eax
movzx eax, byte [ebp + 0x7b]
cmp eax, 0xf
ja case.default.0x100852be
jmp dword [eax*4 + 0x10086099]
mov eax, dword [esi]
add eax, ebx
jmp 0x10085349
mov eax, dword [esi]
sub eax, ebx
jmp 0x10085349
mov eax, dword [esi]
imul eax, ebx
mov dword [edi], eax
mov eax, dword [esi]
imul eax, ebx
jmp 0x10085349
mov eax, dword [esi]
xor edx, edx
div ebx
mov dword [edi], eax
mov eax, dword [esi]
cdq
idiv ebx
jmp 0x10085349
cmp word [ebp + 0x54], 0x5e
jne case.default.0x100852be
mov eax, dword [esi]
xor eax, ebx
jmp 0x10085349
mov eax, dword [esi]
mov edx, eax
shl edx, cl
mov cl, byte [ebp + 0x6f]
shr eax, cl
or edx, eax
mov dword [edi], edx
jmp case.default.0x100852be
mov dword [esi], ebx
jmp case.default.0x100852be
mov eax, dword [esi]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x100852be
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push 0
push dword [esi]
jmp 0x10085332
push dword [ebp + 0x60]
mov eax, dword [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.100b4200
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x100852be
mov eax, ebx
and eax, dword [esi]
jmp 0x10085349
mov eax, dword [esi]
or eax, ebx
mov dword [edi], eax
jmp case.default.0x100852be
test dword [esi], ebx
jne 0x10085208
jmp case.default.0x100852be
test dword [esi], ebx
je case.default.0x100852be
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x64]
add edi, dword [ebp + 0x64]
cmp esi, dword [ebp + 0x4c]
mov dword [ebp + 0x34], edi
jb 0x1008529a
jmp 0x1008549e
and byte [ebp + 0x6f], 0xf
mov cl, 0x10
sub cl, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
mov byte [ebp + 0x5b], cl
jae 0x1008549e
mov ebx, dword [ebp - 0x58]
jmp 0x10085397
mov cl, byte [ebp + 0x5b]
cmp dword [ebp + 0x3c], 0
je 0x100853ae
mov eax, dword [ebp + 0x44]
xor ebx, ebx
mov bx, word [eax]
add eax, dword [ebp + 0x64]
mov dword [ebp + 0x44], eax
mov dword [ebp - 0x58], ebx
movzx eax, byte [ebp + 0x7b]
cmp eax, 0xf
ja case.default.0x100853bb
jmp dword [eax*4 + 0x100860d9]
mov ax, word [esi]
add ax, bx
mov word [edi], ax
mov ax, word [esi]
sub ax, bx
jmp 0x10085465
mov ax, word [esi]
imul ax, bx
mov word [edi], ax
mov ax, word [esi]
imul ax, bx
jmp 0x10085465
movzx eax, word [esi]
movzx ecx, bx
cdq
idiv ecx
mov word [edi], ax
movsx eax, word [esi]
movsx ecx, bx
cdq
idiv ecx
jmp 0x10085465
cmp word [ebp + 0x54], 0x5e
jne case.default.0x100853bb
mov ax, word [esi]
xor ax, bx
jmp 0x10085465
xor eax, eax
mov ax, word [esi]
mov edx, eax
shl edx, cl
mov cl, byte [ebp + 0x6f]
shr ax, cl
or edx, eax
mov word [edi], dx
jmp case.default.0x100853bb
mov word [esi], bx
jmp case.default.0x100853bb
movsx eax, word [esi]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x100853bb
movzx eax, word [esi]
jmp 0x10085442
movsx eax, word [esi]
push dword [ebp + 0x60]
cdq
push dword [ebp + 0x5c]
push edx
push eax
call fcn.100b4200
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x100853bb
mov eax, ebx
and ax, word [esi]
jmp 0x10085465
mov ax, word [esi]
or ax, bx
mov word [edi], ax
jmp case.default.0x100853bb
movzx ecx, word [esi]
movsx eax, bx
test ecx, eax
jne 0x10085208
jmp case.default.0x100853bb
movzx ecx, word [esi]
movsx eax, bx
test ecx, eax
je case.default.0x100853bb
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x64]
add edi, dword [ebp + 0x64]
cmp esi, dword [ebp + 0x4c]
mov dword [ebp + 0x34], edi
jb 0x10085394
mov ebx, dword [ebp - 0x38]
test ebx, ebx
jle 0x100854d5
cmp byte [ebp + 0x4b], 0
je 0x100854d5
push ebx
lea eax, [ebp - 0x68]
push esi
push eax
call fcn.100144ff
mov eax, dword [ebp + 0x1c]
lea eax, [ebp + eax - 0x68]
add esp, 0xc
and dword [ebp - 0x38], 0
mov dword [ebp], esi
mov dword [ebp + 0xc], ebx
lea esi, [ebp - 0x68]
mov dword [ebp + 0x4c], eax
jmp 0x10084f5a
cmp dword [ebp + 0xc], 0
je 0x100854ed
push dword [ebp + 0xc]
lea eax, [ebp - 0x68]
push eax
push dword [ebp]
call fcn.100144ff
add esp, 0xc
mov eax, dword [ebp - 0x4c]
add dword [ebp - 0x34], eax
add dword [ebp + 0x24], eax
mov eax, dword [ebp - 0x28]
add dword [ebp + 0x68], eax
add dword [ebp - 0xc], 0xffffffff
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp - 0x34]
adc dword [ebp - 8], 0xffffffff
cmp dword [ebp - 8], 0
mov dword [ebp + 0x34], edi
jg 0x10084d7b
jl 0x1008521b
cmp dword [ebp - 0xc], 0
jae 0x10084d7b
jmp 0x1008521b
push 0x100e3d7c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x10085d6f
mov ecx, dword [ebp + 0x68]
push 0x2c
pop edi
cmp word [ecx], di
lea eax, [ecx + 2]
mov dword [ebp - 0x10], eax
jne 0x10085575
push 1
mov dword [ebp + 0x68], eax
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x78]
call fcn.1005b693
push ebx
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.10049136
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x100855a1
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x78]
call fcn.1005b693
push ebx
lea ecx, [ebp - 0x44]
push ecx
push eax
call fcn.1004907a
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x100855cd
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x78]
call fcn.1005b693
push ebx
lea ecx, [ebp + 0x2c]
push ecx
push eax
call fcn.1004907a
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov ax, word [esi]
cmp ax, bx
je 0x10085d6c
mov ecx, dword [ebp - 4]
cmp word [ecx], bx
je 0x10085d6c
mov ecx, dword [ebp - 0x44]
cmp word [ecx], bx
je 0x10085d6c
mov edx, dword [ebp + 0x2c]
cmp word [edx], bx
je 0x10085d6c
xor edi, edi
push 0x2a
mov ebx, ecx
pop ecx
cmp ax, cx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x38], edi
mov byte [ebp + 0x6f], 0
jne 0x10085651
cmp word [esi + 2], cx
jne 0x10085642
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x6e], 2
mov byte [ebp + 0x4b], al
jne 0x10085654
inc esi
inc esi
mov byte [ebp + 0x6e], 3
jmp 0x10085654
cmp ax, cx
jne 0x10085651
mov al, byte [esi]
mov byte [ebp + 0x4b], al
add esi, 2
jmp 0x10085654
mov al, byte [ebp - 0x1d]
cmp word [esi], 0x2d
jne 0x1008565e
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x10085537
push esi
push 0x100d23c8
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10085680
mov byte [ebp + 0x6f], 1
jmp 0x10085790
push esi
push str.ANSI
call fcn.10040e34
test al, al
pop ecx
pop ecx
jne 0x1008578d
push esi
push 0x100d23c4
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x100856b2
mov dword [ebp + 0x44], 0x3a8
jmp 0x10085790
push esi
push str.BIG5
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x100856cf
mov dword [ebp + 0x44], 0x3b6
jmp 0x10085790
push esi
push str.UTF8
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x100856ec
mov dword [ebp + 0x44], 0xfde9
jmp 0x10085790
push esi
push str.UTF7
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10085709
mov dword [ebp + 0x44], 0xfde8
jmp 0x10085790
push esi
push 0x100d23ac
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10085723
mov dword [ebp + 0x40], 0x4b0
jmp 0x10085790
push esi
push 0x100c7eb8
call fcn.10040e34
test al, al
pop ecx
pop ecx
jne 0x1008571a
push esi
push str.UNICODEB
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x1008574e
mov dword [ebp + 0x40], 0x4b1
jmp 0x10085790
push esi
push str.UNIB
call fcn.10040e34
test al, al
pop ecx
pop ecx
jne 0x10085745
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.10045b88
add esp, 4
test al, al
je 0x1008577d
push esi
call fcn.10046e22
pop ecx
mov dword [ebp + 0x44], eax
jmp 0x10085790
cmp cx, di
jne 0x10085537
mov dword [ebp - 0x1c], 1
mov dword [ebp + 0x44], edi
mov edx, dword [ebp - 0x44]
mov ax, word [edx]
cmp ax, 0x2a
jne 0x100857c1
cmp word [edx + 2], ax
jne 0x100857af
mov byte [ebp + 0x7b], al
mov cl, al
mov byte [ebp + 0x5a], al
lea ebx, [edx + 4]
jmp 0x100857c4
cmp ax, 0x2a
jne 0x100857c1
mov al, byte [edx]
mov byte [ebp + 0x7b], al
mov cl, al
lea ebx, [edx + 2]
jmp 0x100857c4
mov cl, byte [ebp - 0x1e]
cmp word [ebx], 0x2d
jne 0x100857ce
mov cl, byte [ebx]
inc ebx
inc ebx
test cl, cl
je 0x10085537
push ebx
push str.ANSI
call fcn.10040e34
test al, al
pop ecx
pop ecx
mov esi, 0x100cd4c0
mov edi, 0x100cd4c4
jne 0x10085908
push ebx
push 0x100d23c4
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10085812
mov dword [ebp + 0x4c], 0x3a8
jmp 0x1008590c
push ebx
push str.BIG5
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x1008582f
mov dword [ebp + 0x4c], 0x3b6
jmp 0x1008590c
push ebx
push str.UTF8
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x1008585a
mov dword [ebp + 0x4c], 0xfde9
mov dword [ebp + 0x38], 0x100cd4c8
mov dword [ebp + 0x34], 3
jmp 0x1008590c
push ebx
push str.UTF7
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x10085877
mov dword [ebp + 0x4c], 0xfde8
jmp 0x1008590c
push ebx
push 0x100d23ac
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x1008589b
mov dword [ebp + 0x1c], 0x4b0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x34], 2
jmp 0x1008590c
push ebx
push 0x100c7eb8
call fcn.10040e34
test al, al
pop ecx
pop ecx
jne 0x10085888
push ebx
push str.UNICODEB
call fcn.10040e34
test al, al
pop ecx
pop ecx
jne 0x100858ce
push ebx
push str.UNIB
call fcn.10040e34
test al, al
pop ecx
pop ecx
je 0x100858da
mov dword [ebp + 0x1c], 0x4b1
mov dword [ebp + 0x38], edi
jmp 0x10085892
xor ecx, ecx
mov cx, word [ebx]
push ecx
call fcn.10045b88
add esp, 4
test al, al
je 0x100858f8
push ebx
call fcn.10046e22
pop ecx
mov dword [ebp + 0x4c], eax
jmp 0x1008590c
test cx, cx
jne 0x10085537
mov dword [ebp - 0x18], 1
and dword [ebp + 0x4c], 0
cmp byte [ebp + 0x5b], 0
je 0x10085916
and dword [ebp + 0x38], 0
xor ebx, ebx
lea ecx, [ebp + 0x64]
mov dword [ebp + 0x54], ebx
call fcn.10045faf
xor esi, esi
cmp byte [ebp + 0x4b], 0
mov byte [ebp + 0x53], 0
jne 0x10085ab3
mov eax, dword [ebp - 0x10]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x78]
mov dword [ebp + 0x3c], ebx
call fcn.1005b693
push ebx
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.1004907a
push dword [ebp - 4]
call fcn.100132bf
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x3c]
call fcn.10005b9d
mov esi, dword [ebp + 0x3c]
cmp esi, ebx
jne 0x1008598f
lea ecx, [ebp + 0x3c]
call fcn.10002d56
jmp 0x10085d5c
push 2
xor edi, edi
push edi
push edi
push esi
call fcn.10040d01
push 1
push edi
push edi
push esi
call fcn.10040d01
push edi
push edi
push edi
push esi
mov ebx, eax
call fcn.10040d01
add esp, 0x30
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x64]
call fcn.10045ff1
mov edi, dword [ebp + 0x64]
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 0x10085982
and dword [ebp + 0x24], 0
add eax, edi
cmp byte [ebp + 0x6f], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
jne 0x10085a09
cmp dword [ebp + 0x40], 0x4b0
jne 0x10085a33
push 2
push 0x100cd4c0
push edi
call fcn.1003fa82
add esp, 0xc
test eax, eax
jne 0x10085a2d
mov dword [ebp + 0x40], 0x4b0
mov dword [ebp + 0x24], 2
jmp 0x10085a8a
cmp byte [ebp + 0x6f], 0
jne 0x10085a3c
cmp dword [ebp + 0x40], 0x4b1
jne 0x10085a5f
push 2
push 0x100cd4c4
push edi
call fcn.1003fa82
add esp, 0xc
test eax, eax
jne 0x10085a59
mov dword [ebp + 0x40], 0x4b1
jmp 0x10085a24
cmp byte [ebp + 0x6f], 0
jne 0x10085a68
cmp dword [ebp + 0x44], 0xfde9
jne 0x10085a9f
push 3
push 0x100cd4c8
push edi
call fcn.1003fa82
add esp, 0xc
test eax, eax
jne 0x10085a9f
mov dword [ebp + 0x44], 0xfde9
mov dword [ebp + 0x24], 3
mov eax, dword [ebp + 0x24]
sub ebx, eax
add ebx, 3
push ebx
add eax, edi
push eax
push edi
call fcn.100144b5
add esp, 0xc
sub esi, dword [ebp + 0x24]
jns 0x10085aa6
xor esi, esi
lea ecx, [ebp + 0x3c]
call fcn.10002d56
jmp 0x10085bdd
cmp byte [ebp + 0x6e], 0
je 0x10085b99
mov ecx, dword [ebp + 0x28]
push ebx
lea eax, [ebp - 4]
push eax
call fcn.10002f54
mov edi, dword [ebp - 4]
xor eax, eax
mov ax, word [edi]
push eax
call fcn.10045b88
add esp, 4
test al, al
je 0x10085b16
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp]
push eax
mov dword [ebp], edi
call fcn.10049634
test eax, eax
pop ecx
pop ecx
je 0x10085b16
mov eax, dword [ebp]
cmp word [eax], bx
jne 0x10085b16
cmp byte [ebp + 0x6e], 3
mov ebx, dword [ebp - 0x10]
mov eax, ebx
je 0x10085b34
mov edi, dword [ebp + 0x64]
mov dword [ebp + 0x18], ebx
or esi, 0xffffffff
jmp 0x10085bea
mov ecx, dword [ebp + 0x28]
push 0
push 0xffffffffffffffff
push 0
push edi
call fcn.10010cdd
mov ebx, eax
test ebx, ebx
je 0x10085b7a
cmp byte [ebp + 0x6e], 3
mov eax, dword [ebx + 4]
jne 0x10085b48
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.1004ab3d
pop ecx
pop ecx
mov esi, eax
mov byte [ebp + 0x53], 2
jmp 0x10085b84
mov esi, dword [ebx + 0x10]
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x64]
call fcn.10045ff1
mov edi, dword [ebp + 0x64]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.100b40f0
push esi
push dword [ebx + 4]
push edi
call fcn.100144ff
add esp, 0x18
mov byte [ebp + 0x53], 1
jmp 0x10085b87
push 8
lea ecx, [ebp + 0x64]
call fcn.10045ff1
mov edi, dword [ebp + 0x64]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.100b40f0
add esp, 0xc
jmp 0x10085bdd
cmp dword [ebp - 0x1c], ebx
je 0x10085bc6
push 0xffffffffffffffff
push dword [ebp - 4]
lea ecx, [ebp + 0x64]
call fcn.10046247
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x64]
call fcn.10045ff1
jmp 0x10085bd6
push dword [ebp - 4]
lea eax, [ebp + 0x64]
push eax
call fcn.1004ab3d
pop ecx
pop ecx
mov esi, eax
mov edi, dword [ebp + 0x64]
mov byte [ebp + 0x53], 2
test esi, esi
mov dword [ebp + 0x18], edi
jl 0x10085d5c
mov ebx, edi
cmp byte [ebp + 0x6f], 0
je 0x10085c4b
cmp byte [ebp + 0x53], 0
je 0x10085c4b
push 2
push 0x100cd4c0
push ebx
call fcn.1003fa82
add esp, 0xc
test eax, eax
jne 0x10085c13
mov dword [ebp + 0x40], 0x4b0
jmp 0x10085c4b
push 2
push 0x100cd4c4
push ebx
call fcn.1003fa82
add esp, 0xc
test eax, eax
jne 0x10085c30
mov dword [ebp + 0x40], 0x4b1
jmp 0x10085c4b
push 3
push 0x100cd4c8
push ebx
call fcn.1003fa82
add esp, 0xc
test eax, eax
jne 0x10085c4b
mov dword [ebp + 0x44], 0xfde9
cmp esi, 0xffffffff
jne 0x10085c6b
cmp dword [ebp + 0x40], 0
push ebx
je 0x10085c63
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x10085c6b
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x38], ebx
call fcn.10046123
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x4c], eax
jne 0x10085d09
mov eax, dword [ebp + 0x40]
cmp dword [ebp + 0x1c], eax
jne 0x10085d09
cmp byte [ebp + 0x5a], 0
je 0x10085cab
push 0
lea eax, [ebp + 0x2c]
push eax
push esi
push ebx
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.10053ed6
add esp, 0x18
jmp 0x10085ced
cmp byte [ebp + 0x7b], 0
jne 0x10085cbd
push esi
push ebx
lea ecx, [ebp + 0x54]
call fcn.1003f86c
jmp 0x10085ced
cmp dword [ebp - 0x18], 0
jne 0x10085cd6
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.1004ab17
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x10085ce2
cmp dword [ebp - 0x1c], 0
je 0x10085ce1
push dword [ebp - 4]
jmp 0x10085ce2
push ebx
push dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
call fcn.100457c2
lea ecx, [ebp + 0x68]
call fcn.1003f96c
lea ecx, [ebp + 0x64]
call fcn.1003f96c
lea ecx, [ebp + 0x54]
call fcn.10002d56
xor esi, esi
jmp 0x10085d6f
cmp dword [ebp + 0x40], 0x4b1
jne 0x10085d25
push esi
push ebx
mov dword [ebp + 0x40], 0x4b0
call fcn.10044137
pop ecx
pop ecx
and esi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x10085da3
push dword [ebp + 0x2c]
call fcn.100132bf
pop ecx
xor ebx, ebx
push ebx
push 0x80
push 4
push ebx
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x54]
call fcn.10005b9d
cmp dword [ebp + 0x54], ebx
jne 0x10085da3
lea ecx, [ebp + 0x68]
call fcn.1003f96c
lea ecx, [ebp + 0x64]
call fcn.1003f96c
lea ecx, [ebp + 0x54]
call fcn.10002d56
xor esi, esi
inc esi
lea ecx, [ebp + 0x2c]
call fcn.1003f96c
lea ecx, [ebp - 0x44]
call fcn.1003f96c
lea ecx, [ebp - 4]
call fcn.1003f96c
lea ecx, [ebp + 0x20]
call fcn.1003f96c
lea ecx, [ebp - 0x78]
call fcn.1003f96c
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
and dword [ebp + 4], 0
mov eax, 0x3a8
cmp dword [ebp + 0x4c], eax
mov ebx, 0x3b6
jne 0x10085dbb
cmp dword [ebp + 0x44], ebx
je 0x10085dc5
cmp dword [ebp + 0x44], eax
jne 0x10085e38
cmp dword [ebp + 0x4c], ebx
jne 0x10085e38
cmp byte [ebp + 0x33], 0
je 0x10085dcf
mov byte [ebp + 0x33], 3
lea ecx, [ebp + 0x24]
call fcn.10045faf
xor eax, eax
cmp dword [ebp + 0x4c], ebx
sete al
push eax
lea eax, [ebp + 0x24]
push eax
push dword [ebp + 0x18]
call fcn.1004abca
mov eax, edi
mov edi, dword [ebp + 0x24]
add esp, 0xc
push edi
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp + 0x33], 3
mov esi, eax
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x18], edi
jne 0x10085e30
cmp byte [ebp + 0x7b], 0
jne 0x10085e30
test esi, esi
jle 0x10085e23
push esi
push edi
lea ecx, [ebp + 0x54]
call fcn.1003f86c
lea ecx, [ebp + 0x24]
call fcn.1003f96c
jmp 0x10085fe1
lea ecx, [ebp + 0x24]
call fcn.1003f96c
mov eax, esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
cmp dword [ebp + 0x40], 0
jne 0x10085e80
lea edi, [esi + 0xa]
lea eax, [edi + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.10046168
mov ebx, dword [ebp + 0x68]
push edi
push ebx
push esi
push dword [ebp + 0x18]
push 0
push dword [ebp + 0x44]
call dword [0x100e2be4]
mov edi, eax
test edi, edi
jge 0x10085e72
xor edi, edi
lea esi, [edi + edi]
and word [ebx + esi], 0
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x38], ebx
cmp dword [ebp + 0x1c], 0x4b1
jne 0x10085e94
push esi
push dword [ebp + 0x3c]
call fcn.10044137
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x1c], eax
jle 0x10085f2b
cmp byte [ebp + 0x5a], al
je 0x10085ec8
push eax
lea eax, [ebp + 0x2c]
push eax
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.10053ed6
add esp, 0x18
lea ecx, [ebp + 4]
call fcn.1003f96c
jmp 0x10085ced
cmp byte [ebp + 0x7b], 0
jne 0x10085ef3
cmp esi, eax
jle 0x10085fe1
cmp dword [ebp + 0x38], 0
je 0x10085eea
push dword [ebp + 0x34]
lea ecx, [ebp + 0x54]
push dword [ebp + 0x38]
call fcn.1003f86c
push esi
push dword [ebp + 0x3c]
jmp 0x10085f97
cmp dword [ebp - 0x18], eax
jne 0x10085f30
lea ecx, [ebp + 0x78]
call fcn.10046123
push edi
push dword [ebp + 0x3c]
lea eax, [ebp + 0x78]
push eax
call fcn.1004ab17
mov ecx, dword [ebp + 0x28]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x2c]
call fcn.100457c2
lea ecx, [ebp + 0x78]
call fcn.1003f96c
jmp 0x10085fe1
cmp dword [ebp - 0x18], eax
je 0x10085f38
push dword [ebp - 0x38]
jmp 0x10085fd6
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 + 4]
call fcn.10045ff1
xor ebx, ebx
push ebx
push ebx
push edi
mov edi, dword [ebp + 4]
push edi
push esi
push dword [ebp + 0x3c]
push ebx
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
cmp esi, ebx
jge 0x10085f73
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [edi + esi], 0
jne 0x10085fa1
cmp esi, ebx
jle 0x10085fe1
cmp dword [ebp + 0x38], 0
je 0x10085f95
push dword [ebp + 0x34]
lea ecx, [ebp + 0x54]
push dword [ebp + 0x38]
call fcn.1003f86c
push esi
push edi
lea ecx, [ebp + 0x54]
call fcn.1003f86c
jmp 0x10085fe1
cmp byte [ebp + 0x5a], 0
je 0x10085fc5
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
lea ecx, [ebp + 0x2c]
push ecx
push eax
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.10053ed6
add esp, 0x18
jmp 0x10085fe1
push esi
lea eax, [ebp + 0x68]
push edi
push eax
call fcn.1004aab6
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x28]
call fcn.100457c2
xor esi, esi
cmp dword [ebp + 0x54], esi
je 0x10085ff1
push dword [ebp + 0x54]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 4]
call fcn.1003f96c
lea ecx, [ebp + 0x68]
call fcn.1003f96c
lea ecx, [ebp + 0x64]
call fcn.1003f96c
lea ecx, [ebp + 0x54]
call fcn.10002d56
jmp 0x10085d6f