Function at 0x46115f
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xd4
push ebx
push esi
push edi
mov dword [ebp + 0x30], ecx
push ecx
lea ecx, [ebp - 0x50]
call fcn.00446db5
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
pop ecx
lea ecx, [ebp + 0x28]
call fcn.00444a10
lea ecx, [ebp + 0x10]
call fcn.00444a10
lea ecx, [ebp - 0x24]
call fcn.00444a10
lea ecx, [ebp + 0x3c]
call fcn.00444a10
mov eax, dword [ebp + 0x78]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.004581ad
push 0
lea ecx, [ebp + 0x28]
push ecx
push eax
call fcn.0044785b
mov esi, dword [ebp + 0x28]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor edi, edi
test ax, ax
mov byte [ebp + 0x42], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x65], 0
mov ecx, esi
je 0x461206
call fcn.00402d55
test al, al
je 0x4611f0
mov edi, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x4611e5
test edi, edi
je 0x461206
and word [edi], ax
mov esi, dword [ebp + 0x28]
inc edi
inc edi
test edi, edi
mov eax, esi
mov dword [ebp + 0x78], eax
je 0x461289
cmp word [esi], 0x2a
jne 0x461289
cmp word [eax + 2], 0x2d
je 0x461289
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.00446a34
add esp, 0xc
test al, al
je 0x461239
mov byte [ebp + 0x67], 1
jmp 0x46127d
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.00446a34
add esp, 0xc
test al, al
je 0x461256
mov byte [ebp + 0x42], 1
jmp 0x46127d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c91f8
call fcn.00446a34
add esp, 0xc
test al, al
je 0x461273
mov byte [ebp + 0x65], 1
jmp 0x46127d
lea eax, [ebp + 0x78]
push eax
call fcn.00409168
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0x28]
je 0x461215
xor ebx, ebx
cmp edi, ebx
mov byte [ebp + 0x53], 0
mov byte [ebp - 9], 0
mov byte [ebp + 0x43], 0
mov byte [ebp + 0x7b], 0
mov byte [ebp - 0x19], 0
mov byte [ebp + 0x66], 0
je 0x4612c7
push edi
lea ecx, [ebp + 0x54]
call fcn.0044df7a
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x54], ecx
lea ecx, [ebp + 0x54]
mov dword [ebp + 0x28], eax
call fcn.0043e48d
mov esi, dword [ebp + 0x28]
cmp byte [ebp + 0x65], 0
je 0x461d2e
mov ecx, dword [ebp + 0x30]
push ebx
lea eax, [ebp + 0x28]
push eax
call fcn.00402ee8
mov ecx, dword [ebp + 0x30]
xor esi, esi
inc esi
push esi
push ebx
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x68]
call fcn.00455dfb
mov eax, dword [ebp + 0x3c]
cmp word [eax], 0x2c
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x461310
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.0043e425
pop ecx
mov ecx, dword [ebp + 0x68]
xor edi, edi
mov di, word [ecx]
cmp di, bx
mov dword [ebp + 0x58], edi
je 0x461d24
cmp di, 0x2b
mov edx, 0x3a0
jne 0x46134d
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x46137d
mov edi, 0x3a3
mov ecx, eax
mov dword [ebp + 0x58], edi
jmp 0x46137d
cmp di, 0x2a
jne 0x461362
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x46137d
mov edi, edx
mov ecx, eax
mov dword [ebp + 0x58], edi
cmp di, dx
jne 0x46136f
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], ebx
jmp 0x46137d
cmp di, 0x3f
jne 0x46137d
or dword [ebp + 0x5c], 0xffffffff
or dword [ebp + 0x60], 0xffffffff
inc ecx
lea eax, [ebp + 0x68]
inc ecx
push eax
mov dword [ebp + 0x68], ecx
call fcn.0043e425
cmp di, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x46139f
mov dword [ebp + 0x78], 0x3f
jmp 0x4613b4
cmp di, 0x3a3
mov dword [ebp + 0x78], edi
je 0x4613b4
cmp di, dx
je 0x4613b4
cmp di, 0x3f
jne 0x461418
cmp word [esi], 0x2c
je 0x46141e
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x18], esi
call fcn.004a3a6c
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
pop ecx
je 0x4613d8
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x68], eax
cmp word [ebp + 0x78], 0x3f
jne 0x461423
jmp 0x4613f2
mov ax, word [esi]
cmp ax, 0x2b
je 0x4613f9
cmp ax, 0x2d
je 0x461401
inc esi
inc esi
cmp word [esi], bx
jne 0x4613e1
jmp 0x461423
lea eax, [esi + 2]
mov dword [ebp + 0x54], eax
jmp 0x461404
mov dword [ebp + 0x54], esi
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00447df7
pop ecx
pop ecx
mov word [esi], bx
jmp 0x461423
cmp word [esi], 0x2c
jne 0x461423
inc esi
inc esi
mov dword [ebp + 0x68], esi
or dword [ebp - 4], 0xffffffff
or dword [ebp], 0xffffffff
or dword [ebp + 0xc], 0xffffffff
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp + 8], 0xfffe0000
mov dword [ebp + 0x4c], 1
call fcn.004059e1
test eax, eax
pop ecx
pop ecx
jle 0x461d24
cmp di, 0x2d
jne 0x46147e
mov edi, dword [ebp + 0x24]
mov dword [ebp + 0x58], 0x2b
jmp 0x46148e
cmp di, 0x3c
mov edi, dword [ebp + 0x24]
jne 0x46149d
mov dword [ebp + 0x58], 0x3e
mov eax, dword [ebp + 0x20]
neg eax
adc edi, ebx
neg edi
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edi
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004059c1
test eax, eax
pop ecx
pop ecx
jle 0x461d24
cmp dword [ebp + 0x4c], ebx
jle 0x461d24
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004059e1
cmp dword [ebp - 0x28], ebx
pop ecx
pop ecx
jl 0x461d24
jg 0x4614e0
cmp dword [ebp - 0x2c], ebx
jb 0x461d24
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004059e1
pop ecx
pop ecx
mov ebx, 0x4dbd30
push ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov ecx, dword [ebp + 0x30]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x28]
call fcn.00410c6f
mov esi, eax
test esi, esi
je 0x461d1d
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [ebp - 0x28], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x30], edx
jg 0x461d1d
jl 0x461536
cmp dword [ebp - 0x2c], eax
jae 0x461d1d
test ecx, ecx
jle 0x461d1d
cmp dword [ebp], 0
jg 0x461552
jl 0x46154c
cmp dword [ebp - 4], 0
ja 0x461552
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov ebx, dword [ebp - 0x2c]
mov esi, dword [esi + 4]
sub ecx, ebx
mov eax, ecx
cdq
cmp dword [ebp], edx
mov dword [ebp + 0x14], esi
jl 0x461572
jg 0x46156c
cmp dword [ebp - 4], eax
jbe 0x461572
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov eax, dword [ebp - 4]
cmp ecx, eax
mov dword [ebp + 0x2c], ecx
jle 0x46157f
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x2c], 0
jle 0x4616ad
mov ecx, dword [ebp + 0x58]
mov eax, ecx
or eax, 0x20
add esi, ebx
cmp ax, 0x68
push 0x6f
pop edx
je 0x4615a7
cmp ax, 0x6e
je 0x4615a7
cmp ax, dx
jne 0x4615ac
mov ecx, edx
mov dword [ebp + 0x58], ecx
cmp cx, 0x3a9
jne 0x461619
mov byte [ebp + 0x6f], 9
cmp cx, dx
mov dword [ebp + 0x54], ebx
jne 0x4615d3
mov eax, ebx
cdq
cmp edx, edi
jl 0x4615d3
jg 0x4615cd
cmp eax, dword [ebp + 0x20]
jbe 0x4615d3
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x54], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004059e1
xor eax, eax
cmp dword [ebp - 0x18], eax
pop ecx
pop ecx
jne 0x4615fa
cmp dword [ebp - 0x14], eax
jne 0x4615fd
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], eax
jl 0x4616b7
jg 0x46160e
cmp dword [ebp - 0x18], eax
jbe 0x4616b7
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
jmp 0x4616c4
cmp cx, 0x3f
jne 0x461625
mov byte [ebp + 0x6f], 8
jmp 0x4615b7
cmp cx, 0x7c
jne 0x461631
mov byte [ebp + 0x6f], 7
jmp 0x4615b7
cmp cx, 0x26
jne 0x461640
mov byte [ebp + 0x6f], 6
jmp 0x4615b7
cmp cx, 0x3a0
jne 0x461650
mov byte [ebp + 0x6f], 5
jmp 0x4615b7
cmp cx, 0x3a3
jne 0x461660
mov byte [ebp + 0x6f], 4
jmp 0x4615b7
cmp cx, 0x2e
jne 0x46166f
mov byte [ebp + 0x6f], 3
jmp 0x4615b7
cmp cx, 0x3e
jne 0x46167e
mov byte [ebp + 0x6f], 2
jmp 0x4615b7
cmp cx, 0x5e
sete byte [ebp + 0x6f]
cmp byte [ebp + 0x6f], 0
jne 0x4615b7
cmp cx, 0x2b
je 0x4615b7
cmp cx, 0x23
je 0x4615b7
cmp cx, dx
je 0x4615b7
push 0x4dbd30
jmp 0x461d1e
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
neg edi
adc ebx, 0
neg ebx
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004059e1
cmp dword [ebp + 0xc], 0
pop ecx
pop ecx
jg 0x461720
jl 0x4616e1
cmp dword [ebp + 8], 0
ja 0x461720
cmp dword [ebp + 8], 0xfffe0000
jne 0x4616f0
cmp dword [ebp + 0xc], 0xffffffff
je 0x461707
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp + 0x54]
push ebx
cdq
push edi
push edx
push eax
call fcn.004acfc0
cdq
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0
jg 0x461720
jl 0x461715
cmp dword [ebp + 8], 0
ja 0x461720
and dword [ebp + 0xc], 0
mov dword [ebp + 8], 1
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.004059e1
xor edi, edi
cmp dword [ebp - 0x3c], edi
pop ecx
pop ecx
jne 0x461747
cmp dword [ebp - 0x38], edi
jne 0x461747
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x4c]
and eax, 3
sub ecx, eax
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp + 0x14]
sar ebx, 8
add eax, ecx
cmp ebx, edi
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x38], eax
mov dword [ebp - 8], ebx
jg 0x461779
xor ebx, ebx
inc ebx
mov dword [ebp - 8], ebx
movzx ecx, byte [ebp + 0x4c]
mov eax, dword [ebp + 0x2c]
cdq
idiv ecx
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x44], eax
mov dword [ebp - 0x60], edx
mov eax, ecx
cdq
idiv ebx
lea edx, [eax - 1]
imul edx, ebx
mov dword [ebp + 0x68], edx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
imul edx, ebx
mov dword [ebp + 0x48], eax
mov eax, ecx
sub eax, edx
cmp ecx, 8
mov dword [ebp - 0x44], eax
jl 0x4617b9
mov byte [ebp + 0x66], 3
jmp 0x4617cb
cmp ecx, 4
jl 0x4617c4
mov byte [ebp + 0x66], 2
jmp 0x4617cb
cmp ecx, 2
setge byte [ebp + 0x66]
mov eax, dword [ebp + 0x58]
cmp ax, 0x3e
je 0x4617f1
cmp ax, 0x2e
je 0x4617f1
cmp ax, 0x26
je 0x4617f1
cmp ax, 0x7c
je 0x4617f1
cmp word [ebp + 0x78], 0x3f
mov byte [ebp + 0x53], 1
jne 0x4617f5
mov byte [ebp + 0x53], 0
add dword [ebp + 8], 0xffffffff
adc dword [ebp + 0xc], 0xffffffff
js 0x461b91
jg 0x46180e
cmp dword [ebp + 8], edi
jb 0x461b91
cmp word [ebp + 0x58], 0x23
jne 0x461868
mov edi, dword [ebp + 0x38]
mov eax, dword [ebp - 0x54]
lea ecx, [edi + eax]
jmp 0x46182e
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 0x461820
cmp dword [ebp + 0x34], 0
jle 0x461ce7
push dword [ebp + 0x34]
lea eax, [ebp - 0x64]
push esi
push eax
call fcn.004143a0
push dword [ebp + 0x34]
push edi
push esi
call fcn.004143a0
push dword [ebp + 0x34]
lea eax, [ebp - 0x64]
push eax
push edi
call fcn.004143a0
add esp, 0x24
jmp 0x461ce7
cmp word [ebp + 0x58], 0x6f
jne 0x461905
cmp ebx, 1
mov eax, dword [ebp + 0x44]
jg 0x4618b5
dec eax
js 0x461ce7
mov edi, dword [ebp + 0x48]
dec edi
inc eax
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x68]
add eax, esi
test edi, edi
jl 0x4618a8
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 0x461899
add esi, dword [ebp - 0x44]
dec dword [ebp + 0x54]
jne 0x46188a
jmp 0x461ce7
dec eax
js 0x461ce7
mov edi, dword [ebp + 0x48]
dec edi
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x68]
add eax, esi
test edi, edi
jl 0x4618f8
lea ecx, [edi + 1]
mov dword [ebp + 0x54], ecx
lea ecx, [ebx - 1]
test ecx, ecx
jl 0x4618ee
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 0x4618df
lea ecx, [ebx + ebx]
sub eax, ecx
dec dword [ebp + 0x54]
jne 0x4618d3
add esi, dword [ebp - 0x44]
dec dword [ebp - 0x20]
jne 0x4618c4
jmp 0x461ce7
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp + 0x20]
xor eax, eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 4], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
movzx eax, byte [ebp + 0x66]
mov edi, esi
sub edi, edx
add edi, dword [ebp + 0x2c]
mov byte [ebp + 0x7b], cl
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
dec eax
mov dword [ebp - 0x40], edi
je 0x461bdd
dec eax
je 0x461af2
dec eax
je 0x4619ea
and byte [ebp + 0x7b], 7
mov bl, 8
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x4619dd
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x461962
jmp dword [eax*4 + 0x4627bb]
add byte [esi], cl
jmp case.default.0x461962
cmp word [ebp + 0x58], 0x5e
jne case.default.0x461962
xor byte [esi], cl
jmp case.default.0x461962
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 0x4619b5
mov byte [esi], cl
jmp case.default.0x461962
movsx eax, byte [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x461962
push dword [ebp + 0x60]
movsx eax, byte [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004ad070
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x461962
and byte [esi], cl
jmp case.default.0x461962
or byte [esi], cl
jmp case.default.0x461962
test byte [esi], cl
je case.default.0x461962
mov eax, esi
sub eax, dword [ebp + 0x14]
jmp 0x461b87
test byte [esi], cl
je case.default.0x461962
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
inc esi
cmp esi, edi
jb 0x461959
jmp 0x461c95
and byte [ebp + 0x7b], 0x3f
mov bl, 0x40
sub bl, byte [ebp + 0x7b]
cmp esi, edi
mov byte [ebp + 0x67], bl
jae 0x461c95
movzx eax, byte [ebp + 0x6f]
mov edx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
cmp eax, 9
ja case.default.0x461a17
jmp dword [eax*4 + 0x4627e3]
add dword [esi], edx
adc dword [esi + 4], edi
jmp case.default.0x461a17
cmp word [ebp + 0x58], 0x5e
jne case.default.0x461a17
xor dword [esi], edx
xor dword [esi + 4], edi
jmp case.default.0x461a17
mov edi, dword [esi]
movzx ecx, byte [ebp + 0x20]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.004af180
mov ecx, edx
mov edx, dword [esi + 4]
mov dword [ebp], ecx
movzx ecx, bl
mov dword [ebp - 0x28], eax
mov eax, edi
call fcn.004af160
mov ecx, dword [ebp - 0x28]
mov bl, byte [ebp + 0x67]
mov edi, dword [ebp + 0x24]
or ecx, eax
mov eax, dword [ebp]
or eax, edx
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp 0x461aa3
mov dword [esi], edx
mov dword [esi + 4], edi
jmp case.default.0x461a17
mov eax, dword [esi]
add dword [ebp + 0x5c], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x60], eax
jmp case.default.0x461a17
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [esi + 4]
push dword [esi]
call fcn.004ad070
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov edx, dword [ebp + 0x20]
jmp case.default.0x461a17
and dword [esi], edx
and dword [esi + 4], edi
jmp case.default.0x461a17
or dword [esi], edx
or dword [esi + 4], edi
jmp case.default.0x461a17
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
jne 0x461b7e
mov edi, dword [ebp + 0x24]
jmp case.default.0x461a17
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
je case.default.0x461a17
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, dword [ebp - 0x40]
jb 0x461a0b
jmp 0x461c95
and byte [ebp + 0x7b], 0x1f
mov bl, 0x20
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x461bd0
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x461b10
jmp dword [eax*4 + 0x46280b]
add dword [esi], ecx
jmp case.default.0x461b10
cmp word [ebp + 0x58], 0x5e
jne case.default.0x461b10
xor dword [esi], ecx
jmp case.default.0x461b10
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 0x461b6d
mov dword [esi], ecx
jmp case.default.0x461b10
mov eax, dword [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x461b10
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push 0
push dword [esi]
call fcn.004ad070
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x461b10
and dword [esi], ecx
jmp case.default.0x461b10
or dword [esi], ecx
jmp case.default.0x461b10
test dword [esi], ecx
je case.default.0x461b10
mov eax, esi
sub eax, dword [ebp + 0x14]
cdq
idiv dword [ebp + 0x4c]
add eax, dword [ebp + 0x1c]
cdq
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
xor esi, esi
cmp dword [ebp + 0x18], esi
je 0x461bb1
push str._I64d
push dword [ebp + 0x18]
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [ebp + 0x30]
call fcn.0044702d
add esp, 0x14
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x462538
test dword [esi], ecx
je case.default.0x461b10
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, edi
jb 0x461b03
jmp 0x461c95
and byte [ebp + 0x7b], 0xf
mov bl, 0x10
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x461c8d
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x461bfb
jmp dword [eax*4 + 0x462833]
add word [esi], cx
jmp case.default.0x461bfb
cmp word [ebp + 0x58], 0x5e
jne case.default.0x461bfb
xor word [esi], cx
jmp case.default.0x461bfb
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 0x461c59
mov word [esi], cx
jmp case.default.0x461bfb
movsx eax, word [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x461bfb
push dword [ebp + 0x60]
movsx eax, word [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004ad070
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x461bfb
and word [esi], cx
jmp case.default.0x461bfb
or word [esi], cx
jmp case.default.0x461bfb
movzx eax, word [esi]
movsx edx, cx
test edx, eax
jne 0x461b7e
jmp case.default.0x461bfb
movzx eax, word [esi]
movsx edx, cx
test edx, eax
je case.default.0x461bfb
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, edi
jb 0x461bee
mov edi, dword [ebp - 0x20]
test edi, edi
jle 0x461ccc
cmp byte [ebp + 0x53], 0
je 0x461ccc
push edi
lea eax, [ebp - 0x34]
push esi
push eax
call fcn.004143a0
mov ecx, dword [ebp + 0x20]
mov dword [ebp + 0x54], edi
mov edi, dword [ebp + 0x4c]
add esp, 0xc
and dword [ebp - 0x20], 0
mov dword [ebp + 4], esi
lea esi, [ebp - 0x34]
lea edi, [ebp + edi - 0x34]
jmp 0x46192d
cmp dword [ebp + 0x54], 0
je 0x461ce4
push dword [ebp + 0x54]
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 4]
call fcn.004143a0
add esp, 0xc
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
add esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
add dword [ebp + 0x38], eax
add dword [ebp + 8], 0xffffffff
mov dword [ebp - 0x10], esi
adc dword [ebp + 0xc], 0xffffffff
cmp dword [ebp + 0xc], 0
jg 0x46180e
jl 0x461b91
cmp dword [ebp + 8], 0
jae 0x46180e
jmp 0x461b91
push ebx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x462538
mov ecx, dword [ebp + 0x68]
push 0x2c
pop edi
cmp word [ecx], di
lea eax, [ecx + 2]
mov dword [ebp], eax
jne 0x461d62
push 1
mov dword [ebp + 0x68], eax
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.004581ad
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.00447917
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x461d8e
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.004581ad
push ebx
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.0044785b
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x461dba
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.004581ad
push ebx
lea ecx, [ebp + 0x3c]
push ecx
push eax
call fcn.0044785b
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov ax, word [esi]
cmp ax, bx
je 0x462535
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
je 0x462535
mov ecx, dword [ebp - 0x24]
cmp word [ecx], bx
je 0x462535
mov edx, dword [ebp + 0x3c]
cmp word [edx], bx
je 0x462535
xor edi, edi
push 0x2a
mov ebx, ecx
pop ecx
cmp ax, cx
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x54], edi
mov dword [ebp - 8], edi
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x1c], edi
mov byte [ebp + 0x6f], 0
jne 0x461e3e
cmp word [esi + 2], cx
jne 0x461e2f
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x43], 2
mov byte [ebp + 0x53], al
jne 0x461e41
inc esi
inc esi
mov byte [ebp + 0x43], 3
jmp 0x461e41
cmp ax, cx
jne 0x461e3e
mov al, byte [esi]
mov byte [ebp + 0x53], al
add esi, 2
jmp 0x461e41
mov al, byte [ebp - 9]
cmp word [esi], 0x2d
jne 0x461e4b
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x461d24
push esi
push 0x4c91f4
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461e6d
mov byte [ebp + 0x6f], 1
jmp 0x461f80
push esi
push str.ANSI
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461e86
mov dword [ebp + 0x4c], edi
jmp 0x461f80
push esi
push 0x4c91f0
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461ea3
mov dword [ebp + 0x4c], 0x3a8
jmp 0x461f80
push esi
push str.BIG5
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461ec0
mov dword [ebp + 0x4c], 0x3b6
jmp 0x461f80
push esi
push str.UTF8
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461edd
mov dword [ebp + 0x4c], 0xfde9
jmp 0x461f80
push esi
push str.UTF7
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461efa
mov dword [ebp + 0x4c], 0xfde8
jmp 0x461f80
push esi
push str.UNICODE
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461f14
mov dword [ebp + 0x58], 0x4b0
jmp 0x461f80
push esi
push 0x4c0e00
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x461f0b
push esi
push str.UNICODEB
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x461f3f
mov dword [ebp + 0x58], 0x4b1
jmp 0x461f80
push esi
push str.UNIB
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x461f36
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.004aadc6
add esp, 4
test al, al
je 0x461f6e
push esi
call fcn.004456c1
pop ecx
mov dword [ebp + 0x4c], eax
jmp 0x461f80
cmp cx, di
jne 0x461d24
xor eax, eax
inc eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x54], eax
mov edx, dword [ebp - 0x24]
mov ax, word [edx]
cmp ax, 0x2a
jne 0x461fb1
cmp word [edx + 2], ax
jne 0x461f9f
mov byte [ebp + 0x7b], al
mov cl, al
mov byte [ebp + 0x66], al
lea ebx, [edx + 4]
jmp 0x461fb4
cmp ax, 0x2a
jne 0x461fb1
mov al, byte [edx]
mov byte [ebp + 0x7b], al
mov cl, al
lea ebx, [edx + 2]
jmp 0x461fb4
mov cl, byte [ebp - 0x19]
cmp word [ebx], 0x2d
jne 0x461fbe
mov cl, byte [ebx]
inc ebx
inc ebx
test cl, cl
je 0x461d24
push ebx
push str.ANSI
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
mov esi, 0x4c62f8
mov edi, 0x4c62fc
je 0x461fea
and dword [ebp + 0x18], 0
jmp 0x4620ff
push ebx
push 0x4c91f0
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x462007
mov dword [ebp + 0x18], 0x3a8
jmp 0x4620ff
push ebx
push str.BIG5
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x462024
mov dword [ebp + 0x18], 0x3b6
jmp 0x4620ff
push ebx
push str.UTF8
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46204f
mov dword [ebp + 0x18], 0xfde9
mov dword [ebp + 0x1c], 0x4c6300
mov dword [ebp + 0x2c], 3
jmp 0x4620ff
push ebx
push str.UTF7
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x46206c
mov dword [ebp + 0x18], 0xfde8
jmp 0x4620ff
push ebx
push str.UNICODE
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x462090
mov dword [ebp + 0x14], 0x4b0
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x2c], 2
jmp 0x4620ff
push ebx
push 0x4c0e00
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x46207d
push ebx
push str.UNICODEB
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x4620c3
push ebx
push str.UNIB
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x4620cf
mov dword [ebp + 0x14], 0x4b1
mov dword [ebp + 0x1c], edi
jmp 0x462087
xor ecx, ecx
mov cx, word [ebx]
push ecx
call fcn.004aadc6
add esp, 4
test al, al
je 0x4620ed
push ebx
call fcn.004456c1
pop ecx
mov dword [ebp + 0x18], eax
jmp 0x4620ff
test cx, cx
jne 0x461d24
xor eax, eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp - 8], eax
cmp byte [ebp + 0x67], 0
je 0x462109
and dword [ebp + 0x1c], 0
xor ebx, ebx
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x44], ebx
call fcn.0044489c
xor edi, edi
cmp byte [ebp + 0x53], 0
mov byte [ebp + 0x65], 0
jne 0x4622c9
mov eax, dword [ebp]
xor esi, esi
inc esi
push esi
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp + 0x34], ebx
call fcn.004581ad
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.0044785b
push dword [ebp + 0x10]
call fcn.004130a1
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x34]
call fcn.00405a2a
mov edi, dword [ebp + 0x34]
cmp edi, ebx
jne 0x462194
lea ecx, [ebp + 0x34]
call fcn.00402cb5
lea ecx, [ebp + 0x48]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.00402cb5
jmp 0x462538
push 2
push ebx
push ebx
push edi
call fcn.0043f790
push 1
push ebx
push ebx
push edi
call fcn.0043f790
push ebx
push ebx
mov esi, eax
push ebx
push edi
mov dword [ebp + 4], esi
call fcn.0043f790
add esp, 0x30
add esi, 0xa
push esi
lea ecx, [ebp + 0x48]
call fcn.004448de
mov esi, dword [ebp + 0x48]
push ebx
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 4]
mov byte [esi + 2], 0
mov byte [esi + 1], 0
push esi
mov byte [esi], 0
or dword [ebp - 0x10], 0xffffffff
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov eax, dword [ebp - 0x10]
cmp eax, ebx
mov edi, eax
jge 0x4621fd
lea ecx, [ebp + 0x34]
call fcn.00402cb5
jmp 0x462525
add eax, esi
cmp byte [ebp + 0x6f], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
mov dword [ebp + 0x38], ebx
jne 0x46221c
cmp dword [ebp + 0x58], 0x4b0
jne 0x462246
push 2
push 0x4c62f8
push esi
call fcn.0043e4f6
add esp, 0xc
test eax, eax
jne 0x462240
mov dword [ebp + 0x58], 0x4b0
mov dword [ebp + 0x38], 2
jmp 0x46229d
cmp byte [ebp + 0x6f], 0
jne 0x46224f
cmp dword [ebp + 0x58], 0x4b1
jne 0x462272
push 2
push 0x4c62fc
push esi
call fcn.0043e4f6
add esp, 0xc
test eax, eax
jne 0x46226c
mov dword [ebp + 0x58], 0x4b1
jmp 0x462237
cmp byte [ebp + 0x6f], 0
jne 0x46227b
cmp dword [ebp + 0x4c], 0xfde9
jne 0x4622b5
push 3
push 0x4c6300
push esi
call fcn.0043e4f6
add esp, 0xc
test eax, eax
jne 0x4622b5
mov dword [ebp + 0x4c], 0xfde9
mov dword [ebp + 0x38], 3
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp + 4]
sub eax, ecx
add eax, 3
push eax
add ecx, esi
push ecx
push esi
call fcn.00414356
add esp, 0xc
sub edi, dword [ebp + 0x38]
jns 0x4622bc
xor edi, edi
lea ecx, [ebp + 0x34]
call fcn.00402cb5
jmp 0x4623a8
cmp byte [ebp + 0x43], 0
je 0x462364
mov ecx, dword [ebp + 0x30]
xor esi, esi
push esi
lea eax, [ebp + 0x10]
push eax
call fcn.00402ee8
mov ecx, dword [ebp + 0x30]
push esi
push 0xffffffffffffffff
push esi
push dword [ebp + 0x10]
call fcn.00410c6f
mov ebx, eax
cmp ebx, esi
je 0x462345
cmp byte [ebp + 0x43], 3
jne 0x462313
push dword [ebx + 4]
lea eax, [ebp + 0x48]
push eax
call fcn.004492b0
pop ecx
pop ecx
mov edi, eax
mov byte [ebp + 0x65], 2
jmp 0x46234f
mov edi, dword [ebx + 0x10]
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x48]
call fcn.004448de
mov esi, dword [ebp + 0x48]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.004acf60
push edi
push dword [ebx + 4]
push esi
call fcn.004143a0
add esp, 0x18
mov byte [ebp + 0x65], 1
jmp 0x462352
push 8
lea ecx, [ebp + 0x48]
call fcn.004448de
mov esi, dword [ebp + 0x48]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.004acf60
add esp, 0xc
jmp 0x4623a8
cmp dword [ebp + 0x54], ebx
je 0x462391
push 0xffffffffffffffff
push dword [ebp + 0x10]
lea ecx, [ebp + 0x48]
call fcn.00444b34
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov edi, eax
shl edi, 1
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x48]
call fcn.004448de
jmp 0x4623a1
push dword [ebp + 0x10]
lea eax, [ebp + 0x48]
push eax
call fcn.004492b0
pop ecx
pop ecx
mov edi, eax
mov esi, dword [ebp + 0x48]
mov byte [ebp + 0x65], 2
test edi, edi
jl 0x462525
cmp byte [ebp + 0x6f], 0
je 0x462433
cmp byte [ebp + 0x65], 0
je 0x462433
push 2
push 0x4c62f8
push esi
xor ebx, ebx
call fcn.0043e4f6
add esp, 0xc
test eax, eax
push 2
jne 0x4623dd
mov dword [ebp + 0x58], 0x4b0
jmp 0x462417
push 0x4c62fc
push esi
call fcn.0043e4f6
add esp, 0xc
test eax, eax
jne 0x4623fa
mov dword [ebp + 0x58], 0x4b1
push 2
jmp 0x462417
push 3
push 0x4c6300
push esi
call fcn.0043e4f6
add esp, 0xc
test eax, eax
jne 0x46242d
mov dword [ebp + 0x4c], 0xfde9
push 3
pop ebx
mov eax, edi
sub eax, ebx
add eax, 4
push eax
lea eax, [ebx + esi]
push eax
push esi
call fcn.00414356
add esp, 0xc
sub edi, ebx
jns 0x462433
xor edi, edi
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x38], esi
mov dword [ebp + 4], esi
call fcn.00444a10
mov ebx, dword [ebp + 0x18]
cmp ebx, dword [ebp + 0x4c]
jne 0x4624d1
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x58]
jne 0x4624d1
cmp byte [ebp + 0x66], 0
je 0x462473
push 0
lea eax, [ebp + 0x3c]
push eax
push edi
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x30]
call fcn.00451899
add esp, 0x18
jmp 0x4624b5
cmp byte [ebp + 0x7b], 0
jne 0x462485
push edi
push esi
lea ecx, [ebp + 0x44]
call fcn.0043e2ac
jmp 0x4624b5
cmp dword [ebp - 8], 0
jne 0x46249e
push edi
lea eax, [ebp + 0x68]
push esi
push eax
call fcn.00449229
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x4624aa
cmp dword [ebp + 0x54], 0
je 0x4624a9
push dword [ebp + 0x10]
jmp 0x4624aa
push esi
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x30]
call fcn.0044414b
lea ecx, [ebp + 0x68]
call fcn.0043e48d
lea ecx, [ebp + 0x48]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.00402cb5
xor esi, esi
jmp 0x462538
cmp dword [ebp + 0x58], 0x4b1
jne 0x4624ed
push edi
push esi
mov dword [ebp + 0x58], 0x4b0
call fcn.00442ad2
pop ecx
pop ecx
and edi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x46256c
push dword [ebp + 0x3c]
call fcn.004130a1
pop ecx
push 0
push 0x80
push 4
push 0
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x44]
call fcn.00405a2a
cmp dword [ebp + 0x44], 0
jne 0x46256c
lea ecx, [ebp + 0x68]
call fcn.0043e48d
lea ecx, [ebp + 0x48]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.00402cb5
xor esi, esi
inc esi
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp - 0x24]
call fcn.0043e48d
lea ecx, [ebp + 0x10]
call fcn.0043e48d
lea ecx, [ebp + 0x28]
call fcn.0043e48d
lea ecx, [ebp - 0x50]
call fcn.0043e48d
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
and dword [ebp + 0x54], 0
mov eax, 0x3a8
cmp ebx, eax
mov ebx, 0x3b6
jne 0x462583
cmp dword [ebp + 0x4c], ebx
je 0x46258d
cmp dword [ebp + 0x4c], eax
jne 0x4625fb
cmp dword [ebp + 0x18], ebx
jne 0x4625fb
cmp byte [ebp + 0x42], 0
je 0x462597
mov byte [ebp + 0x42], 3
lea ecx, [ebp + 0x34]
call fcn.0044489c
xor eax, eax
cmp dword [ebp + 0x18], ebx
sete al
push eax
lea eax, [ebp + 0x34]
push eax
push esi
call fcn.0044933d
mov eax, esi
mov esi, dword [ebp + 0x34]
add esp, 0xc
push esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x34], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
cmp byte [ebp + 0x42], 3
mov edi, eax
mov dword [ebp + 0x38], esi
jne 0x4625f3
cmp byte [ebp + 0x7b], 0
jne 0x4625f3
test edi, edi
jle 0x4625e6
push edi
push esi
lea ecx, [ebp + 0x44]
call fcn.0043e2ac
lea ecx, [ebp + 0x34]
call fcn.0043e48d
jmp 0x462793
lea ecx, [ebp + 0x34]
call fcn.0043e48d
mov ebx, edi
shr ebx, 1
cmp dword [ebp + 0x58], 0
jne 0x46263e
lea ebx, [edi + 0xa]
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.00444a55
push ebx
push dword [ebp + 0x68]
push edi
push esi
push 0
push dword [ebp + 0x4c]
call dword [0x4dabe4]
mov ebx, eax
test ebx, ebx
jge 0x46262d
xor ebx, ebx
mov eax, dword [ebp + 0x68]
lea edi, [ebx + ebx]
and word [eax + edi], 0
mov dword [ebp + 0x38], eax
mov dword [ebp + 4], eax
cmp dword [ebp + 0x14], 0x4b1
jne 0x462652
push edi
push dword [ebp + 0x38]
call fcn.00442ad2
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x14], eax
jle 0x4626e3
cmp byte [ebp + 0x66], al
je 0x462680
xor esi, esi
push esi
lea eax, [ebp + 0x3c]
push eax
push edi
push dword [ebp + 0x38]
push dword [ebp + 0x3c]
push dword [ebp + 0x30]
call fcn.00451899
add esp, 0x18
jmp 0x4627a3
cmp byte [ebp + 0x7b], 0
jne 0x4626ab
cmp edi, eax
jle 0x462793
cmp dword [ebp + 0x1c], 0
je 0x4626a2
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x1c]
call fcn.0043e2ac
push edi
push dword [ebp + 0x38]
jmp 0x462748
cmp dword [ebp - 8], eax
jne 0x4626e8
lea ecx, [ebp + 0x78]
call fcn.00444a10
push ebx
push dword [ebp + 0x38]
lea eax, [ebp + 0x78]
push eax
call fcn.0044928a
mov ecx, dword [ebp + 0x30]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x3c]
call fcn.0044414b
lea ecx, [ebp + 0x78]
call fcn.0043e48d
jmp 0x462793
cmp dword [ebp - 8], eax
je 0x4626f0
push dword [ebp + 4]
jmp 0x462788
shr edi, 1
lea esi, [edi + edi*2]
lea esi, [esi + esi + 0xa]
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x54]
call fcn.004448de
mov ebx, dword [ebp + 0x54]
xor eax, eax
push eax
push eax
push esi
push ebx
push edi
push dword [ebp + 0x38]
push eax
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.DLL_WideCharToMultiByte]
mov esi, eax
test esi, esi
jge 0x462724
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [ebx + esi], 0
jne 0x462752
test esi, esi
jle 0x462793
cmp dword [ebp + 0x1c], 0
je 0x462746
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x1c]
call fcn.0043e2ac
push esi
push ebx
lea ecx, [ebp + 0x44]
call fcn.0043e2ac
jmp 0x462793
cmp byte [ebp + 0x66], 0
je 0x462777
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
push 0
lea ecx, [ebp + 0x3c]
push ecx
push eax
push ebx
push dword [ebp + 0x3c]
push dword [ebp + 0x30]
call fcn.00451899
add esp, 0x18
jmp 0x462793
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.00449229
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x30]
call fcn.0044414b
xor esi, esi
cmp dword [ebp + 0x44], esi
je 0x4627a3
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp + 0x54]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0043e48d
jmp 0x46217f