Function at 0x484953
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xfc
push ebx
push esi
push edi
mov dword [ebp + 0x24], ecx
push ecx
lea ecx, [ebp - 0x7c]
call fcn.00448948
lea eax, [ebp + 0x78]
push eax
call fcn.0043fe57
pop ecx
lea ecx, [ebp + 0xc]
call fcn.0044658e
lea ecx, [ebp - 0xc]
call fcn.0044658e
lea ecx, [ebp - 0x48]
call fcn.0044658e
lea ecx, [ebp + 0x2c]
call fcn.0044658e
mov eax, dword [ebp + 0x78]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0045bac5
push 0
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.004494ac
mov esi, dword [ebp + 0xc]
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 0x4849fa
call fcn.004b1b03
test al, al
je 0x4849e4
mov edi, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x4849d9
test edi, edi
je 0x4849fa
and word [edi], ax
mov esi, dword [ebp + 0xc]
inc edi
inc edi
test edi, edi
mov eax, esi
mov dword [ebp + 0x78], eax
je 0x484a7d
cmp word [esi], 0x2a
jne 0x484a7d
cmp word [eax + 2], 0x2d
je 0x484a7d
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.004485c7
add esp, 0xc
test al, al
je 0x484a2d
mov byte [ebp + 0x5b], 1
jmp 0x484a71
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.004485c7
add esp, 0xc
test al, al
je 0x484a4a
mov byte [ebp + 0x33], 1
jmp 0x484a71
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4d236c
call fcn.004485c7
add esp, 0xc
test al, al
je 0x484a67
mov byte [ebp + 0x53], 1
jmp 0x484a71
lea eax, [ebp + 0x78]
push eax
call fcn.00408f31
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0xc]
je 0x484a09
xor ebx, ebx
cmp edi, ebx
mov byte [ebp + 0x4b], 0
mov byte [ebp - 0x29], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x7b], 0
mov byte [ebp - 0x19], 0
mov byte [ebp + 0x5a], 0
je 0x484abb
push edi
lea ecx, [ebp]
call fcn.004505eb
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp]
mov dword [ebp], ecx
lea ecx, [ebp]
mov dword [ebp + 0xc], eax
call fcn.0043fe25
mov esi, dword [ebp + 0xc]
cmp byte [ebp + 0x53], 0
je 0x485959
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp + 0xc]
push eax
call fcn.00402f5e
mov eax, dword [ebp + 0xc]
or dword [ebp + 8], 0xffffffff
push 0x2a
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x78]
push 0x7c
push eax
call fcn.004403c2
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x484afc
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x78], eax
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00414d24
add esp, 4
test al, al
je 0x484b1f
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405c24
pop ecx
pop ecx
jmp 0x484b24
cmp cx, bx
jne 0x484b27
mov dword [ebp + 0x78], ebx
mov ecx, dword [ebp + 0x24]
xor esi, esi
inc esi
push esi
push ebx
lea eax, [ebp + 0x2c]
push eax
push dword [ebp + 0x68]
call fcn.0045937c
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 - 0x28], ebx
mov dword [ebp - 0x54], ebx
jne 0x484b59
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.0043fe57
mov eax, dword [ebp + 0x68]
xor edx, edx
mov dx, word [eax]
cmp dx, bx
pop ecx
mov dword [ebp + 0x54], edx
je 0x48594f
cmp dx, 0x2b
mov edi, 0x3a0
jne 0x484b96
lea ecx, [eax + 2]
cmp word [ecx], dx
jne 0x484bc6
mov edx, 0x3a3
mov eax, ecx
mov dword [ebp + 0x54], edx
jmp 0x484bc6
cmp dx, 0x2a
jne 0x484bab
lea ecx, [eax + 2]
cmp word [ecx], dx
jne 0x484bc6
mov edx, edi
mov eax, ecx
mov dword [ebp + 0x54], edx
cmp dx, di
jne 0x484bb8
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], ebx
jmp 0x484bc6
cmp dx, 0x3f
jne 0x484bc6
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.0043fe57
cmp dx, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x484be8
mov dword [ebp + 0x4c], 0x3f
jmp 0x484bfd
cmp dx, 0x3a3
mov dword [ebp + 0x4c], edx
je 0x484bfd
cmp dx, di
je 0x484bfd
cmp dx, 0x3f
jne 0x484c63
cmp word [esi], 0x2c
je 0x484c69
mov edi, esi
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp - 0x28], edi
call fcn.00414c4e
mov esi, dword [ebp + 0x68]
cmp word [esi], bx
pop ecx
je 0x484c23
mov word [esi], bx
inc esi
inc esi
mov dword [ebp + 0x68], esi
cmp word [ebp + 0x4c], 0x3f
jne 0x484c6e
jmp 0x484c3d
mov ax, word [edi]
cmp ax, 0x2b
je 0x484c44
cmp ax, 0x2d
je 0x484c4c
inc edi
inc edi
cmp word [edi], bx
jne 0x484c2c
jmp 0x484c6e
lea eax, [edi + 2]
mov dword [ebp - 0x34], eax
jmp 0x484c4f
mov dword [ebp - 0x34], edi
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00449a66
pop ecx
pop ecx
mov word [edi], bx
jmp 0x484c6e
cmp word [esi], 0x2c
jne 0x484c6e
inc esi
inc esi
mov dword [ebp + 0x68], esi
or dword [ebp - 0x14], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
or dword [ebp - 4], 0xffffffff
xor eax, eax
inc eax
cmp word [esi], 0x2a
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 8], 0xfffe0000
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x44], ebx
jne 0x484cb0
inc esi
inc esi
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x68], esi
cmp word [esi], 0x26
jne 0x484cf2
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x44], 3
call fcn.00414c4e
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
pop ecx
je 0x484cd8
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x68], eax
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push esi
call fcn.00411019
cmp eax, ebx
mov dword [ebp + 0x1c], eax
je 0x48594f
jmp 0x484d09
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0047f1ca
test eax, eax
pop ecx
pop ecx
jle 0x48594f
cmp word [ebp + 0x54], 0x2d
jne 0x484d19
mov dword [ebp + 0x54], 0x2b
jmp 0x484d27
cmp word [ebp + 0x54], 0x3c
jne 0x484d39
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 0x484d50
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00453e89
test eax, eax
pop ecx
pop ecx
jle 0x48594f
mov eax, dword [ebp + 0x3c]
cmp eax, ebx
jle 0x48594f
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x40
jne 0x484d9e
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00453e89
test eax, eax
pop ecx
pop ecx
jle 0x48594f
cmp dword [ebp + 0x38], ebx
jle 0x48594f
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x2f
jne 0x484dc7
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00453e89
test eax, eax
pop ecx
pop ecx
jle 0x48594f
cmp dword [ebp + 0x64], ebx
jle 0x48594f
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
je 0x484dd3
add dword [ebp + 0x68], 2
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
call fcn.0047f1ca
cmp dword [ebp - 0x40], ebx
pop ecx
pop ecx
jl 0x48594f
jg 0x484dfc
cmp dword [ebp - 0x44], ebx
jb 0x48594f
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0047f1ca
pop ecx
pop ecx
mov edi, 0x4e3d84
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0xc]
call fcn.00411019
mov esi, eax
cmp esi, ebx
jne 0x484e32
push edi
jmp 0x485949
cmp dword [ebp + 0x78], ebx
mov dword [ebp - 0x38], ebx
je 0x484e4c
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x78]
call fcn.00411019
mov dword [ebp - 0x38], eax
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [ebp - 0x40], edx
mov dword [ebp + 4], ecx
jg 0x485944
jl 0x484e69
cmp dword [ebp - 0x44], eax
jae 0x485944
cmp ecx, ebx
jle 0x485944
cmp dword [ebp - 0x10], ebx
jg 0x484e83
jl 0x484e7d
cmp dword [ebp - 0x14], ebx
ja 0x484e83
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
sub ecx, dword [ebp - 0x44]
mov esi, dword [esi + 4]
mov eax, ecx
cdq
cmp dword [ebp - 0x10], edx
mov dword [ebp - 0x34], esi
jl 0x484ea1
jg 0x484e9b
cmp dword [ebp - 0x14], eax
jbe 0x484ea1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov dword [ebp + 0x20], ecx
jle 0x484eae
mov dword [ebp + 0x20], eax
cmp dword [ebp + 0x20], ebx
jle 0x485944
mov ecx, dword [ebp + 0x54]
mov edi, dword [ebp - 0x44]
mov eax, ecx
or eax, 0x20
add esi, edi
cmp ax, 0x68
push 0x6f
pop edx
je 0x484ed8
cmp ax, 0x6e
je 0x484ed8
cmp ax, dx
jne 0x484edd
mov ecx, edx
mov dword [ebp + 0x54], ecx
cmp cx, 0x3a9
jne 0x484eed
mov byte [ebp + 0x7b], 9
jmp 0x484fa6
cmp cx, 0x3f
jne 0x484efc
mov byte [ebp + 0x7b], 8
jmp 0x484fa6
cmp cx, 0x7c
jne 0x484f0b
mov byte [ebp + 0x7b], 7
jmp 0x484fa6
cmp cx, 0x26
jne 0x484f1a
mov byte [ebp + 0x7b], 6
jmp 0x484fa6
cmp cx, 0x3a0
jne 0x484f2f
cmp dword [ebp + 0x18], ebx
sete al
dec al
and al, 5
add al, 5
jmp 0x484f4d
cmp cx, 0x2a
jne 0x484f3f
cmp dword [ebp + 0x18], ebx
setne al
add al, 0xb
jmp 0x484f4d
cmp cx, 0x2f
jne 0x484f52
cmp dword [ebp + 0x18], ebx
setne al
add al, 0xe
mov byte [ebp + 0x7b], al
jmp 0x484fa6
cmp cx, 0x3a3
jne 0x484f5f
mov byte [ebp + 0x7b], 4
jmp 0x484fa6
cmp cx, 0x2d
jne 0x484f6b
mov byte [ebp + 0x7b], 0xd
jmp 0x484fa6
cmp cx, 0x2e
jne 0x484f77
mov byte [ebp + 0x7b], 3
jmp 0x484fa6
cmp cx, 0x3e
jne 0x484f83
mov byte [ebp + 0x7b], 2
jmp 0x484fa6
cmp cx, 0x5e
sete byte [ebp + 0x7b]
cmp byte [ebp + 0x7b], 0
jne 0x484fa6
cmp cx, 0x2b
je 0x484fa6
cmp cx, 0x23
je 0x484fa6
cmp cx, dx
jne 0x485944
cmp cx, dx
mov dword [ebp - 0x30], edi
jne 0x484fc3
mov eax, edi
cdq
cmp edx, dword [ebp + 0x14]
jl 0x484fc3
jg 0x484fbd
cmp eax, dword [ebp + 0x10]
jbe 0x484fc3
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0047f1ca
cmp dword [ebp - 0x24], ebx
pop ecx
pop ecx
jne 0x484fe8
cmp dword [ebp - 0x20], ebx
jne 0x484feb
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jl 0x484ffc
jg 0x484ff4
cmp dword [ebp - 0x24], ebx
jb 0x484ffc
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
jmp 0x485009
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
neg ebx
adc edi, 0
neg edi
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0047f1ca
cmp dword [ebp - 4], 0
pop ecx
pop ecx
jg 0x485065
jl 0x485026
cmp dword [ebp - 8], 0
ja 0x485065
cmp dword [ebp - 8], 0xfffe0000
jne 0x485035
cmp dword [ebp - 4], 0xffffffff
je 0x48504c
mov eax, dword [ebp + 4]
sub eax, dword [ebp - 0x30]
push edi
cdq
push ebx
push edx
push eax
call fcn.004b4580
cdq
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
jg 0x485065
jl 0x48505a
cmp dword [ebp - 8], 0
ja 0x485065
and dword [ebp - 4], 0
mov dword [ebp - 8], 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0047f1ca
cmp dword [ebp - 0x50], 0
pop ecx
pop ecx
jne 0x48508c
cmp dword [ebp - 0x4c], 0
jne 0x48508c
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x34]
mov eax, ecx
and eax, 3
sub ecx, eax
test byte [ebp + 0x44], 2
mov dword [ebp - 0x84], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x70], eax
lea eax, [ecx + edx]
mov dword [ebp - 0x30], esi
mov dword [ebp + 0x68], eax
je 0x4850bd
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 4]
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 8]
test eax, eax
mov edi, esi
mov dword [ebp + 0x28], edi
jl 0x4850cf
lea edi, [edx + eax]
mov dword [ebp + 0x28], edi
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4850dc
mov edi, dword [eax + 4]
mov dword [ebp + 0x28], edi
movzx ebx, word [ebp + 0x3c]
mov eax, dword [ebp + 0x20]
cdq
idiv ebx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x5c], ecx
mov byte [ebp + 0x6e], cl
mov ecx, dword [ebp + 0x38]
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x80], edx
mov eax, ebx
cdq
idiv ecx
lea edx, [eax - 1]
imul ecx, edx
mov dword [ebp - 0x60], edx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x18], ecx
mov ecx, eax
imul ecx, dword [ebp + 0x38]
mov dword [ebp], eax
mov eax, ebx
sub eax, ecx
cmp ebx, 8
mov dword [ebp - 0x38], eax
jl 0x48512f
mov byte [ebp + 0x5a], 3
jmp 0x485141
cmp ebx, 4
jl 0x48513a
mov byte [ebp + 0x5a], 2
jmp 0x485141
cmp ebx, 2
setge byte [ebp + 0x5a]
mov eax, dword [ebp + 0x54]
cmp ax, 0x3e
je 0x485167
cmp ax, 0x2e
je 0x485167
cmp ax, 0x26
je 0x485167
cmp ax, 0x7c
je 0x485167
cmp word [ebp + 0x4c], 0x3f
mov byte [ebp + 0x4b], 1
jne 0x48516b
mov byte [ebp + 0x4b], 0
push ebx
lea ecx, [ebp - 0x10]
call fcn.00446437
mov eax, dword [ebp + 0x64]
sub eax, ebx
add dword [ebp - 8], 0xffffffff
mov dword [ebp + 0x18], eax
adc dword [ebp - 4], 0xffffffff
js 0x485633
jle 0x485935
cmp word [ebp + 0x54], 0x23
jne 0x485214
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp + 0x68]
je 0x4851cb
mov ecx, dword [ebp + 0x20]
lea edi, [eax + ecx]
jmp 0x4851c2
mov edx, dword [ebp + 0x3c]
dec edx
js 0x4851bc
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 0x4851af
add eax, dword [ebp + 0x64]
add esi, dword [ebp + 0x64]
cmp eax, edi
jb 0x4851a8
jmp 0x485905
mov ecx, dword [ebp - 0x84]
lea edx, [eax + ecx]
jmp 0x4851e4
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 0x4851d6
cmp dword [ebp - 0x70], 0
jle 0x485905
mov ecx, dword [ebp - 0x70]
dec ecx
js 0x485905
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 0x485201
jmp 0x485905
cmp word [ebp + 0x54], 0x6f
jne 0x48533e
cmp dword [ebp + 0x18], 0
je 0x4852ac
mov edi, dword [ebp + 0x20]
mov eax, edi
cdq
idiv dword [ebp + 0x64]
mov ecx, dword [ebp + 0x68]
add edi, ecx
mov dword [ebp + 4], edi
dec eax
imul eax, dword [ebp + 0x64]
add eax, esi
cmp ecx, edi
jmp 0x4852a2
cmp dword [ebp - 0x60], 0
jl 0x485296
mov edi, dword [ebp]
mov eax, dword [ebp - 0x60]
dec edi
inc eax
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, esi
test edi, edi
jl 0x48528e
mov edx, dword [ebp + 0x38]
lea ecx, [edi + 1]
dec edx
mov dword [ebp + 8], ecx
test edx, edx
jl 0x485282
lea ecx, [edx + 1]
mov dword [ebp + 0x1c], ecx
mov bl, byte [eax]
mov cl, byte [esi]
mov byte [esi], bl
inc esi
mov byte [eax], cl
inc eax
dec dword [ebp + 0x1c]
jne 0x485273
mov ecx, dword [ebp + 0x38]
add ecx, ecx
sub eax, ecx
dec dword [ebp + 8]
jne 0x485269
add esi, dword [ebp - 0x38]
dec dword [ebp + 0x34]
jne 0x485256
mov ecx, dword [ebp + 0x4c]
add ecx, dword [ebp + 0x18]
sub eax, dword [ebp + 0x18]
cmp ecx, dword [ebp + 4]
mov dword [ebp + 0x4c], ecx
jb 0x485245
jmp 0x485905
cmp dword [ebp + 0x38], 1
mov eax, dword [ebp - 0x64]
jg 0x4852ea
dec eax
js 0x485905
mov edi, dword [ebp]
dec edi
inc eax
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp - 0x18]
add eax, esi
test edi, edi
jl 0x4852dd
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 0x4852d0
add esi, dword [ebp - 0x38]
dec dword [ebp + 0x1c]
jne 0x4852c4
jmp 0x485905
dec eax
js 0x485905
mov edi, dword [ebp]
dec edi
inc eax
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x18]
add eax, esi
test edi, edi
jl 0x485331
mov edx, dword [ebp + 0x38]
lea ecx, [edi + 1]
dec edx
mov dword [ebp + 8], ecx
test edx, edx
jl 0x485325
lea ecx, [edx + 1]
mov dword [ebp + 0x1c], ecx
mov bl, byte [eax]
mov cl, byte [esi]
mov byte [esi], bl
inc esi
mov byte [eax], cl
inc eax
dec dword [ebp + 0x1c]
jne 0x485316
mov ecx, dword [ebp + 0x38]
add ecx, ecx
sub eax, ecx
dec dword [ebp + 8]
jne 0x48530c
add esi, dword [ebp - 0x38]
dec dword [ebp + 0x34]
jne 0x4852f9
jmp 0x485905
mov al, byte [ebp + 0x10]
mov byte [ebp + 0x6f], al
mov eax, dword [ebp - 0x80]
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x68]
xor edx, edx
add ecx, dword [ebp + 0x20]
mov dword [ebp + 0x40], eax
movzx eax, byte [ebp + 0x5a]
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 4], edx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
dec eax
je 0x485792
dec eax
je 0x485698
dec eax
je 0x4854a2
and byte [ebp + 0x6f], 7
mov bl, 8
sub bl, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
jae 0x4858b6
movzx ecx, byte [ebp + 0x7b]
mov dword [ebp + 8], ecx
jmp 0x4853ab
mov ecx, dword [ebp + 8]
cmp dword [ebp + 0x44], 0
je 0x4853bf
mov eax, dword [ebp + 0x40]
mov dl, byte [eax]
add eax, dword [ebp + 0x64]
mov byte [ebp + 0x6e], dl
mov dword [ebp + 0x40], eax
cmp ecx, 0xf
ja case.default.0x4853c8
jmp dword [ecx*4 + 0x486437]
mov al, byte [esi]
add al, byte [ebp + 0x6e]
jmp 0x485467
mov al, byte [esi]
sub al, byte [ebp + 0x6e]
jmp 0x485467
mov al, byte [ebp + 0x6e]
imul byte [esi]
mov byte [edi], al
mov al, byte [ebp + 0x6e]
imul byte [esi]
jmp 0x485467
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 0x485467
cmp word [ebp + 0x54], 0x5e
jne case.default.0x4853c8
mov al, byte [esi]
xor al, byte [ebp + 0x6e]
jmp 0x485467
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.0x4853c8
mov al, byte [ebp + 0x6e]
mov byte [esi], al
jmp case.default.0x4853c8
movsx eax, byte [esi]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x4853c8
movzx eax, byte [esi]
jmp 0x485445
movsx eax, byte [esi]
push dword [ebp + 0x60]
cdq
push dword [ebp + 0x5c]
push edx
push eax
call fcn.004b4630
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x4853c8
mov al, byte [ebp + 0x6e]
and al, byte [esi]
jmp 0x485467
mov al, byte [esi]
or al, byte [ebp + 0x6e]
mov byte [edi], al
jmp case.default.0x4853c8
mov al, byte [ebp + 0x6e]
test byte [esi], al
je case.default.0x4853c8
mov eax, esi
sub eax, dword [ebp - 0x34]
jmp 0x485629
mov al, byte [ebp + 0x6e]
test byte [esi], al
je case.default.0x4853c8
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 0x4853a8
jmp 0x4858b6
and byte [ebp + 0x6f], 0x3f
mov al, 0x40
sub al, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
mov byte [ebp + 0x5b], al
jae 0x4858b6
movzx ecx, byte [ebp + 0x7b]
mov ebx, dword [ebp + 0x14]
mov dword [ebp + 8], ecx
jmp 0x4854c6
mov ecx, dword [ebp + 8]
cmp dword [ebp + 0x44], 0
je 0x4854e0
mov eax, dword [ebp + 0x40]
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 + 0x40], eax
cmp ecx, 0xf
ja case.default.0x4854e9
jmp dword [ecx*4 + 0x486477]
mov eax, dword [esi]
add eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
adc ecx, ebx
jmp 0x48560b
mov eax, dword [esi]
sub eax, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
sbb ecx, ebx
jmp 0x48560b
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.004b4630
mov dword [edi], eax
mov dword [edi + 4], edx
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.004b4630
jmp 0x485552
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.004b4a80
mov dword [edi], eax
mov dword [edi + 4], edx
push ebx
push dword [ebp + 0x10]
push dword [esi + 4]
push dword [esi]
call fcn.004b4580
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.default.0x4854e9
cmp word [ebp + 0x54], 0x5e
jne case.default.0x4854e9
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor eax, dword [ebp + 0x10]
xor ecx, ebx
jmp 0x48560b
mov edi, dword [esi]
mov ebx, dword [esi + 4]
movzx ecx, byte [ebp + 0x5b]
mov eax, edi
mov edx, ebx
call fcn.004b6720
mov ecx, edx
mov dword [ebp - 0x40], ecx
movzx ecx, byte [ebp + 0x6e]
mov dword [ebp - 0x8c], eax
mov eax, edi
mov edx, ebx
call fcn.004b6740
mov ecx, dword [ebp - 0x8c]
mov edi, dword [ebp + 0x34]
mov ebx, dword [ebp + 0x14]
or ecx, eax
mov eax, dword [ebp - 0x40]
or eax, edx
mov dword [edi], ecx
mov dword [edi + 4], eax
jmp case.default.0x4854e9
mov eax, dword [ebp + 0x10]
mov dword [esi], eax
mov dword [esi + 4], ebx
jmp case.default.0x4854e9
mov eax, dword [esi]
add dword [ebp + 0x5c], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x60], eax
jmp case.default.0x4854e9
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [esi + 4]
push dword [esi]
call fcn.004b4630
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x4854e9
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, dword [ebp + 0x10]
and ecx, ebx
jmp 0x48560b
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.0x4854e9
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, dword [ebp + 0x10]
and ecx, ebx
or eax, ecx
je case.default.0x4854e9
mov eax, esi
sub eax, dword [ebp - 0x34]
cdq
idiv dword [ebp + 0x3c]
add eax, dword [ebp - 0x54]
cdq
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
xor esi, esi
cmp dword [ebp - 0x28], esi
je 0x485653
push str._I64d
push dword [ebp - 0x28]
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [ebp + 0x24]
call fcn.00448bfa
add esp, 0x14
lea ecx, [ebp - 0x10]
call fcn.0043fe25
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x48618d
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, dword [ebp + 0x10]
and ecx, ebx
or eax, ecx
je case.default.0x4854e9
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 0x4854c3
jmp 0x4858b6
and byte [ebp + 0x6f], 0x1f
mov cl, 0x20
sub cl, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
mov byte [ebp + 0x5b], cl
jae 0x4858b6
mov ebx, dword [ebp - 0x58]
jmp 0x4856b5
mov cl, byte [ebp + 0x5b]
cmp dword [ebp + 0x44], 0
je 0x4856c9
mov eax, dword [ebp + 0x40]
mov ebx, dword [eax]
add eax, dword [ebp + 0x64]
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x40], eax
movzx eax, byte [ebp + 0x7b]
cmp eax, 0xf
ja case.default.0x4856d6
jmp dword [eax*4 + 0x4864b7]
mov eax, dword [esi]
add eax, ebx
jmp 0x485761
mov eax, dword [esi]
sub eax, ebx
jmp 0x485761
mov eax, dword [esi]
imul eax, ebx
mov dword [edi], eax
mov eax, dword [esi]
imul eax, ebx
jmp 0x485761
mov eax, dword [esi]
xor edx, edx
div ebx
mov dword [edi], eax
mov eax, dword [esi]
cdq
idiv ebx
jmp 0x485761
cmp word [ebp + 0x54], 0x5e
jne case.default.0x4856d6
mov eax, dword [esi]
xor eax, ebx
jmp 0x485761
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.0x4856d6
mov dword [esi], ebx
jmp case.default.0x4856d6
mov eax, dword [esi]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x4856d6
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push 0
push dword [esi]
jmp 0x48574a
push dword [ebp + 0x60]
mov eax, dword [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004b4630
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x4856d6
mov eax, ebx
and eax, dword [esi]
jmp 0x485761
mov eax, dword [esi]
or eax, ebx
mov dword [edi], eax
jmp case.default.0x4856d6
test dword [esi], ebx
jne 0x485620
jmp case.default.0x4856d6
test dword [esi], ebx
je case.default.0x4856d6
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 0x4856b2
jmp 0x4858b6
and byte [ebp + 0x6f], 0xf
mov cl, 0x10
sub cl, byte [ebp + 0x6f]
cmp esi, dword [ebp + 0x4c]
mov byte [ebp + 0x5b], cl
jae 0x4858b6
mov ebx, dword [ebp - 0x5c]
jmp 0x4857af
mov cl, byte [ebp + 0x5b]
cmp dword [ebp + 0x44], 0
je 0x4857c6
mov eax, dword [ebp + 0x40]
xor ebx, ebx
mov bx, word [eax]
add eax, dword [ebp + 0x64]
mov dword [ebp + 0x40], eax
mov dword [ebp - 0x5c], ebx
movzx eax, byte [ebp + 0x7b]
cmp eax, 0xf
ja case.default.0x4857d3
jmp dword [eax*4 + 0x4864f7]
mov ax, word [esi]
add ax, bx
mov word [edi], ax
mov ax, word [esi]
sub ax, bx
jmp 0x48587d
mov ax, word [esi]
imul ax, bx
mov word [edi], ax
mov ax, word [esi]
imul ax, bx
jmp 0x48587d
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 0x48587d
cmp word [ebp + 0x54], 0x5e
jne case.default.0x4857d3
mov ax, word [esi]
xor ax, bx
jmp 0x48587d
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.0x4857d3
mov word [esi], bx
jmp case.default.0x4857d3
movsx eax, word [esi]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x4857d3
movzx eax, word [esi]
jmp 0x48585a
movsx eax, word [esi]
push dword [ebp + 0x60]
cdq
push dword [ebp + 0x5c]
push edx
push eax
call fcn.004b4630
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
jmp case.default.0x4857d3
mov eax, ebx
and ax, word [esi]
jmp 0x48587d
mov ax, word [esi]
or ax, bx
mov word [edi], ax
jmp case.default.0x4857d3
movzx ecx, word [esi]
movsx eax, bx
test ecx, eax
jne 0x485620
jmp case.default.0x4857d3
movzx ecx, word [esi]
movsx eax, bx
test ecx, eax
je case.default.0x4857d3
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 0x4857ac
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
jle 0x4858ed
cmp byte [ebp + 0x4b], 0
je 0x4858ed
push ebx
lea eax, [ebp - 0x6c]
push esi
push eax
call fcn.00414839
mov eax, dword [ebp + 0x3c]
lea eax, [ebp + eax - 0x6c]
add esp, 0xc
and dword [ebp - 0x3c], 0
mov dword [ebp + 4], esi
mov dword [ebp + 0x1c], ebx
lea esi, [ebp - 0x6c]
mov dword [ebp + 0x4c], eax
jmp 0x485372
cmp dword [ebp + 0x1c], 0
je 0x485905
push dword [ebp + 0x1c]
lea eax, [ebp - 0x6c]
push eax
push dword [ebp + 4]
call fcn.00414839
add esp, 0xc
mov eax, dword [ebp - 0x50]
add dword [ebp - 0x30], eax
add dword [ebp + 0x28], eax
mov eax, dword [ebp - 0x24]
add dword [ebp + 0x68], eax
add dword [ebp - 8], 0xffffffff
mov edi, dword [ebp + 0x28]
mov esi, dword [ebp - 0x30]
adc dword [ebp - 4], 0xffffffff
cmp dword [ebp - 4], 0
mov dword [ebp + 0x34], edi
jg 0x485190
jl 0x485633
cmp dword [ebp - 8], 0
jae 0x485190
jmp 0x485633
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x48618d
mov ecx, dword [ebp + 0x68]
push 0x2c
pop edi
cmp word [ecx], di
lea eax, [ecx + 2]
mov dword [ebp - 0x10], eax
jne 0x48598d
push 1
mov dword [ebp + 0x68], eax
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0045bac5
push ebx
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.00449568
mov esi, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x4859b9
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0045bac5
push ebx
lea ecx, [ebp - 0x48]
push ecx
push eax
call fcn.004494ac
mov esi, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x4859e5
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0045bac5
push ebx
lea ecx, [ebp + 0x2c]
push ecx
push eax
call fcn.004494ac
mov esi, dword [ebp + 0xc]
add esp, 0xc
mov ax, word [esi]
cmp ax, bx
je 0x48618a
mov ecx, dword [ebp - 0xc]
cmp word [ecx], bx
je 0x48618a
mov ecx, dword [ebp - 0x48]
cmp word [ecx], bx
je 0x48618a
mov edx, dword [ebp + 0x2c]
cmp word [edx], bx
je 0x48618a
xor edi, edi
push 0x2a
mov ebx, ecx
pop ecx
cmp ax, cx
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x20], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x38], edi
mov byte [ebp + 0x6f], 0
jne 0x485a69
cmp word [esi + 2], cx
jne 0x485a5a
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x6e], 2
mov byte [ebp + 0x4b], al
jne 0x485a6c
inc esi
inc esi
mov byte [ebp + 0x6e], 3
jmp 0x485a6c
cmp ax, cx
jne 0x485a69
mov al, byte [esi]
mov byte [ebp + 0x4b], al
add esi, 2
jmp 0x485a6c
mov al, byte [ebp - 0x29]
cmp word [esi], 0x2d
jne 0x485a76
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x48594f
push esi
push 0x4d2368
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485a98
mov byte [ebp + 0x6f], 1
jmp 0x485bab
push esi
push str.ANSI
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485ab1
mov dword [ebp + 0x40], edi
jmp 0x485bab
push esi
push 0x4d2364
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485ace
mov dword [ebp + 0x40], 0x3a8
jmp 0x485bab
push esi
push str.BIG5
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485aeb
mov dword [ebp + 0x40], 0x3b6
jmp 0x485bab
push esi
push str.UTF8
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485b08
mov dword [ebp + 0x40], 0xfde9
jmp 0x485bab
push esi
push str.UTF7
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485b25
mov dword [ebp + 0x40], 0xfde8
jmp 0x485bab
push esi
push 0x4d234c
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485b3f
mov dword [ebp + 0x54], 0x4b0
jmp 0x485bab
push esi
push 0x4c7eb8
call fcn.004412b6
test al, al
pop ecx
pop ecx
jne 0x485b36
push esi
push str.UNICODEB
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485b6a
mov dword [ebp + 0x54], 0x4b1
jmp 0x485bab
push esi
push str.UNIB
call fcn.004412b6
test al, al
pop ecx
pop ecx
jne 0x485b61
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.00414d24
add esp, 4
test al, al
je 0x485b99
push esi
call fcn.00447254
pop ecx
mov dword [ebp + 0x40], eax
jmp 0x485bab
cmp cx, di
jne 0x48594f
xor eax, eax
inc eax
mov dword [ebp + 0x54], eax
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x48]
mov ax, word [edx]
cmp ax, 0x2a
jne 0x485bdc
cmp word [edx + 2], ax
jne 0x485bca
mov byte [ebp + 0x7b], al
mov cl, al
mov byte [ebp + 0x5a], al
lea ebx, [edx + 4]
jmp 0x485bdf
cmp ax, 0x2a
jne 0x485bdc
mov al, byte [edx]
mov byte [ebp + 0x7b], al
mov cl, al
lea ebx, [edx + 2]
jmp 0x485bdf
mov cl, byte [ebp - 0x19]
cmp word [ebx], 0x2d
jne 0x485be9
mov cl, byte [ebx]
inc ebx
inc ebx
test cl, cl
je 0x48594f
push ebx
push str.ANSI
call fcn.004412b6
test al, al
pop ecx
pop ecx
mov esi, 0x4cd478
mov edi, 0x4cd47c
je 0x485c15
and dword [ebp + 0x4c], 0
jmp 0x485d2a
push ebx
push 0x4d2364
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485c32
mov dword [ebp + 0x4c], 0x3a8
jmp 0x485d2a
push ebx
push str.BIG5
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485c4f
mov dword [ebp + 0x4c], 0x3b6
jmp 0x485d2a
push ebx
push str.UTF8
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485c7a
mov dword [ebp + 0x4c], 0xfde9
mov dword [ebp + 0x38], 0x4cd480
mov dword [ebp + 0x34], 3
jmp 0x485d2a
push ebx
push str.UTF7
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485c97
mov dword [ebp + 0x4c], 0xfde8
jmp 0x485d2a
push ebx
push 0x4d234c
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485cbb
mov dword [ebp + 0x20], 0x4b0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x34], 2
jmp 0x485d2a
push ebx
push 0x4c7eb8
call fcn.004412b6
test al, al
pop ecx
pop ecx
jne 0x485ca8
push ebx
push str.UNICODEB
call fcn.004412b6
test al, al
pop ecx
pop ecx
jne 0x485cee
push ebx
push str.UNIB
call fcn.004412b6
test al, al
pop ecx
pop ecx
je 0x485cfa
mov dword [ebp + 0x20], 0x4b1
mov dword [ebp + 0x38], edi
jmp 0x485cb2
xor ecx, ecx
mov cx, word [ebx]
push ecx
call fcn.00414d24
add esp, 4
test al, al
je 0x485d18
push ebx
call fcn.00447254
pop ecx
mov dword [ebp + 0x4c], eax
jmp 0x485d2a
test cx, cx
jne 0x48594f
xor eax, eax
inc eax
mov dword [ebp + 0x20], eax
mov dword [ebp - 0x18], eax
cmp byte [ebp + 0x5b], 0
je 0x485d34
and dword [ebp + 0x38], 0
xor ebx, ebx
lea ecx, [ebp + 0x64]
mov dword [ebp + 0x44], ebx
call fcn.0044641a
xor esi, esi
cmp byte [ebp + 0x4b], 0
mov byte [ebp + 0x53], 0
jne 0x485ed1
mov eax, dword [ebp - 0x10]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x7c]
mov dword [ebp + 0x3c], ebx
call fcn.0045bac5
push ebx
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.004494ac
push dword [ebp - 0xc]
call fcn.004135f9
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x3c]
call fcn.00405c6d
mov esi, dword [ebp + 0x3c]
cmp esi, ebx
jne 0x485dad
lea ecx, [ebp + 0x3c]
call fcn.00402d2b
jmp 0x48617a
push 2
xor edi, edi
push edi
push edi
push esi
call fcn.00441183
push 1
push edi
push edi
push esi
call fcn.00441183
push edi
push edi
push edi
push esi
mov ebx, eax
call fcn.00441183
add esp, 0x30
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x64]
call fcn.0044645c
mov edi, dword [ebp + 0x64]
push 0
lea eax, [ebp + 4]
push eax
push ebx
mov byte [edi + 2], 0
mov byte [edi + 1], 0
push edi
mov byte [edi], 0
or dword [ebp + 4], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 4]
test eax, eax
mov esi, eax
jl 0x485da0
and dword [ebp + 0x28], 0
add eax, edi
cmp byte [ebp + 0x6f], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
jne 0x485e27
cmp dword [ebp + 0x54], 0x4b0
jne 0x485e51
push 2
push 0x4cd478
push edi
call fcn.0043ff15
add esp, 0xc
test eax, eax
jne 0x485e4b
mov dword [ebp + 0x54], 0x4b0
mov dword [ebp + 0x28], 2
jmp 0x485ea8
cmp byte [ebp + 0x6f], 0
jne 0x485e5a
cmp dword [ebp + 0x54], 0x4b1
jne 0x485e7d
push 2
push 0x4cd47c
push edi
call fcn.0043ff15
add esp, 0xc
test eax, eax
jne 0x485e77
mov dword [ebp + 0x54], 0x4b1
jmp 0x485e42
cmp byte [ebp + 0x6f], 0
jne 0x485e86
cmp dword [ebp + 0x40], 0xfde9
jne 0x485ebd
push 3
push 0x4cd480
push edi
call fcn.0043ff15
add esp, 0xc
test eax, eax
jne 0x485ebd
mov dword [ebp + 0x40], 0xfde9
mov dword [ebp + 0x28], 3
mov eax, dword [ebp + 0x28]
sub ebx, eax
add ebx, 3
push ebx
add eax, edi
push eax
push edi
call fcn.004147ef
add esp, 0xc
sub esi, dword [ebp + 0x28]
jns 0x485ec4
xor esi, esi
lea ecx, [ebp + 0x3c]
call fcn.00402d2b
jmp 0x485ffb
cmp byte [ebp + 0x6e], 0
je 0x485fb7
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
call fcn.00402f5e
mov edi, dword [ebp - 0xc]
xor eax, eax
mov ax, word [edi]
push eax
call fcn.00414d24
add esp, 4
test al, al
je 0x485f34
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 4]
push eax
mov dword [ebp + 4], edi
call fcn.00449a66
test eax, eax
pop ecx
pop ecx
je 0x485f34
mov eax, dword [ebp + 4]
cmp word [eax], bx
jne 0x485f34
cmp byte [ebp + 0x6e], 3
mov ebx, dword [ebp - 0x10]
mov eax, ebx
je 0x485f52
mov edi, dword [ebp + 0x64]
mov dword [ebp + 0x18], ebx
or esi, 0xffffffff
jmp 0x486008
mov ecx, dword [ebp + 0x24]
push 0
push 0xffffffffffffffff
push 0
push edi
call fcn.00411019
mov ebx, eax
test ebx, ebx
je 0x485f98
cmp byte [ebp + 0x6e], 3
mov eax, dword [ebx + 4]
jne 0x485f66
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.0044af6f
pop ecx
pop ecx
mov esi, eax
mov byte [ebp + 0x53], 2
jmp 0x485fa2
mov esi, dword [ebx + 0x10]
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x64]
call fcn.0044645c
mov edi, dword [ebp + 0x64]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.004b4520
push esi
push dword [ebx + 4]
push edi
call fcn.00414839
add esp, 0x18
mov byte [ebp + 0x53], 1
jmp 0x485fa5
push 8
lea ecx, [ebp + 0x64]
call fcn.0044645c
mov edi, dword [ebp + 0x64]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.004b4520
add esp, 0xc
jmp 0x485ffb
cmp dword [ebp - 0x28], ebx
je 0x485fe4
push 0xffffffffffffffff
push dword [ebp - 0xc]
lea ecx, [ebp + 0x64]
call fcn.004466b2
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 + 0x64]
call fcn.0044645c
jmp 0x485ff4
push dword [ebp - 0xc]
lea eax, [ebp + 0x64]
push eax
call fcn.0044af6f
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 0x48617a
mov ebx, edi
cmp byte [ebp + 0x6f], 0
je 0x486069
cmp byte [ebp + 0x53], 0
je 0x486069
push 2
push 0x4cd478
push ebx
call fcn.0043ff15
add esp, 0xc
test eax, eax
jne 0x486031
mov dword [ebp + 0x54], 0x4b0
jmp 0x486069
push 2
push 0x4cd47c
push ebx
call fcn.0043ff15
add esp, 0xc
test eax, eax
jne 0x48604e
mov dword [ebp + 0x54], 0x4b1
jmp 0x486069
push 3
push 0x4cd480
push ebx
call fcn.0043ff15
add esp, 0xc
test eax, eax
jne 0x486069
mov dword [ebp + 0x40], 0xfde9
cmp esi, 0xffffffff
jne 0x486089
cmp dword [ebp + 0x54], 0
push ebx
je 0x486081
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x486089
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x3c], ebx
call fcn.0044658e
mov eax, dword [ebp + 0x40]
cmp dword [ebp + 0x4c], eax
jne 0x486127
mov eax, dword [ebp + 0x54]
cmp dword [ebp + 0x20], eax
jne 0x486127
cmp byte [ebp + 0x5a], 0
je 0x4860c9
push 0
lea eax, [ebp + 0x2c]
push eax
push esi
push ebx
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
call fcn.004542d6
add esp, 0x18
jmp 0x48610b
cmp byte [ebp + 0x7b], 0
jne 0x4860db
push esi
push ebx
lea ecx, [ebp + 0x44]
call fcn.0043fcd3
jmp 0x48610b
cmp dword [ebp - 0x18], 0
jne 0x4860f4
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.0044af49
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x486100
cmp dword [ebp - 0x28], 0
je 0x4860ff
push dword [ebp - 0xc]
jmp 0x486100
push ebx
push dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x24]
call fcn.00445c44
lea ecx, [ebp + 0x68]
call fcn.0043fe25
lea ecx, [ebp + 0x64]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.00402d2b
xor esi, esi
jmp 0x48618d
cmp dword [ebp + 0x54], 0x4b1
jne 0x486143
push esi
push ebx
mov dword [ebp + 0x54], 0x4b0
call fcn.0044462f
pop ecx
pop ecx
and esi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x4861c1
push dword [ebp + 0x2c]
call fcn.004135f9
pop ecx
xor ebx, ebx
push ebx
push 0x80
push 4
push ebx
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x44]
call fcn.00405c6d
cmp dword [ebp + 0x44], ebx
jne 0x4861c1
lea ecx, [ebp + 0x68]
call fcn.0043fe25
lea ecx, [ebp + 0x64]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.00402d2b
xor esi, esi
inc esi
lea ecx, [ebp + 0x2c]
call fcn.0043fe25
lea ecx, [ebp - 0x48]
call fcn.0043fe25
lea ecx, [ebp - 0xc]
call fcn.0043fe25
lea ecx, [ebp + 0xc]
call fcn.0043fe25
lea ecx, [ebp - 0x7c]
call fcn.0043fe25
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
and dword [ebp], 0
mov eax, 0x3a8
cmp dword [ebp + 0x4c], eax
mov ebx, 0x3b6
jne 0x4861d9
cmp dword [ebp + 0x40], ebx
je 0x4861e3
cmp dword [ebp + 0x40], eax
jne 0x486256
cmp dword [ebp + 0x4c], ebx
jne 0x486256
cmp byte [ebp + 0x33], 0
je 0x4861ed
mov byte [ebp + 0x33], 3
lea ecx, [ebp + 0x28]
call fcn.0044641a
xor eax, eax
cmp dword [ebp + 0x4c], ebx
sete al
push eax
lea eax, [ebp + 0x28]
push eax
push dword [ebp + 0x18]
call fcn.0044affc
mov eax, edi
mov edi, dword [ebp + 0x28]
add esp, 0xc
push edi
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x28], 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 0x48624e
cmp byte [ebp + 0x7b], 0
jne 0x48624e
test esi, esi
jle 0x486241
push esi
push edi
lea ecx, [ebp + 0x44]
call fcn.0043fcd3
lea ecx, [ebp + 0x28]
call fcn.0043fe25
jmp 0x4863ff
lea ecx, [ebp + 0x28]
call fcn.0043fe25
mov eax, esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
cmp dword [ebp + 0x54], 0
jne 0x48629e
lea edi, [esi + 0xa]
lea eax, [edi + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.004465d3
mov ebx, dword [ebp + 0x68]
push edi
push ebx
push esi
push dword [ebp + 0x18]
push 0
push dword [ebp + 0x40]
call dword [0x4e2be4]
mov edi, eax
test edi, edi
jge 0x486290
xor edi, edi
lea esi, [edi + edi]
and word [ebx + esi], 0
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x3c], ebx
cmp dword [ebp + 0x20], 0x4b1
jne 0x4862b2
push esi
push dword [ebp + 0x3c]
call fcn.0044462f
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x20], eax
jle 0x486349
cmp byte [ebp + 0x5a], al
je 0x4862e6
push eax
lea eax, [ebp + 0x2c]
push eax
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x2c]
push dword [ebp + 0x24]
call fcn.004542d6
add esp, 0x18
lea ecx, [ebp]
call fcn.0043fe25
jmp 0x48610b
cmp byte [ebp + 0x7b], 0
jne 0x486311
cmp esi, eax
jle 0x4863ff
cmp dword [ebp + 0x38], 0
je 0x486308
push dword [ebp + 0x34]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x38]
call fcn.0043fcd3
push esi
push dword [ebp + 0x3c]
jmp 0x4863b5
cmp dword [ebp - 0x18], eax
jne 0x48634e
lea ecx, [ebp + 0x78]
call fcn.0044658e
push edi
push dword [ebp + 0x3c]
lea eax, [ebp + 0x78]
push eax
call fcn.0044af49
mov ecx, dword [ebp + 0x24]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x2c]
call fcn.00445c44
lea ecx, [ebp + 0x78]
call fcn.0043fe25
jmp 0x4863ff
cmp dword [ebp - 0x18], eax
je 0x486356
push dword [ebp - 0x3c]
jmp 0x4863f4
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]
call fcn.0044645c
xor ebx, ebx
push ebx
push ebx
push edi
mov edi, dword [ebp]
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 0x486391
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [edi + esi], 0
jne 0x4863bf
cmp esi, ebx
jle 0x4863ff
cmp dword [ebp + 0x38], 0
je 0x4863b3
push dword [ebp + 0x34]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x38]
call fcn.0043fcd3
push esi
push edi
lea ecx, [ebp + 0x44]
call fcn.0043fcd3
jmp 0x4863ff
cmp byte [ebp + 0x5a], 0
je 0x4863e3
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 + 0x24]
call fcn.004542d6
add esp, 0x18
jmp 0x4863ff
push esi
lea eax, [ebp + 0x68]
push edi
push eax
call fcn.0044aee8
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x24]
call fcn.00445c44
xor esi, esi
cmp dword [ebp + 0x44], esi
je 0x48640f
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp]
call fcn.0043fe25
lea ecx, [ebp + 0x68]
call fcn.0043fe25
lea ecx, [ebp + 0x64]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.00402d2b
jmp 0x48618d