Function at 0x45fe8d
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.004462b2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dae7
pop ecx
lea ecx, [ebp + 0x28]
call fcn.00443f5b
lea ecx, [ebp + 0x10]
call fcn.00443f5b
lea ecx, [ebp - 0x24]
call fcn.00443f5b
lea ecx, [ebp + 0x3c]
call fcn.00443f5b
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.00456f8f
push 0
lea ecx, [ebp + 0x28]
push ecx
push eax
call fcn.00446d58
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 0x45ff34
call fcn.0043daaf
test al, al
je 0x45ff1e
mov edi, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x45ff13
test edi, edi
je 0x45ff34
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 0x45ffb7
cmp word [esi], 0x2a
jne 0x45ffb7
cmp word [eax + 2], 0x2d
je 0x45ffb7
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.00445f31
add esp, 0xc
test al, al
je 0x45ff67
mov byte [ebp + 0x67], 1
jmp 0x45ffab
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.00445f31
add esp, 0xc
test al, al
je 0x45ff84
mov byte [ebp + 0x42], 1
jmp 0x45ffab
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c604c
call fcn.00445f31
add esp, 0xc
test al, al
je 0x45ffa1
mov byte [ebp + 0x65], 1
jmp 0x45ffab
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0x28]
je 0x45ff43
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 0x45fff5
push edi
lea ecx, [ebp + 0x54]
call fcn.0044cd74
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.0043db4f
mov esi, dword [ebp + 0x28]
cmp byte [ebp + 0x65], 0
je 0x460a5c
mov ecx, dword [ebp + 0x30]
push ebx
lea eax, [ebp + 0x28]
push eax
call fcn.00402eb0
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.00454bdd
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 0x46003e
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.0043dae7
pop ecx
mov ecx, dword [ebp + 0x68]
xor edi, edi
mov di, word [ecx]
cmp di, bx
mov dword [ebp + 0x58], edi
je 0x460a52
cmp di, 0x2b
mov edx, 0x3a0
jne 0x46007b
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x4600ab
mov edi, 0x3a3
mov ecx, eax
mov dword [ebp + 0x58], edi
jmp 0x4600ab
cmp di, 0x2a
jne 0x460090
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x4600ab
mov edi, edx
mov ecx, eax
mov dword [ebp + 0x58], edi
cmp di, dx
jne 0x46009d
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], ebx
jmp 0x4600ab
cmp di, 0x3f
jne 0x4600ab
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.0043dae7
cmp di, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x4600cd
mov dword [ebp + 0x78], 0x3f
jmp 0x4600e2
cmp di, 0x3a3
mov dword [ebp + 0x78], edi
je 0x4600e2
cmp di, dx
je 0x4600e2
cmp di, 0x3f
jne 0x460146
cmp word [esi], 0x2c
je 0x46014c
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x18], esi
call fcn.004a7e7b
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
pop ecx
je 0x460106
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x68], eax
cmp word [ebp + 0x78], 0x3f
jne 0x460151
jmp 0x460120
mov ax, word [esi]
cmp ax, 0x2b
je 0x460127
cmp ax, 0x2d
je 0x46012f
inc esi
inc esi
cmp word [esi], bx
jne 0x46010f
jmp 0x460151
lea eax, [esi + 2]
mov dword [ebp + 0x54], eax
jmp 0x460132
mov dword [ebp + 0x54], esi
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.004472d9
pop ecx
pop ecx
mov word [esi], bx
jmp 0x460151
cmp word [esi], 0x2c
jne 0x460151
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.0040567a
test eax, eax
pop ecx
pop ecx
jle 0x460a52
cmp di, 0x2d
jne 0x4601ac
mov edi, dword [ebp + 0x24]
mov dword [ebp + 0x58], 0x2b
jmp 0x4601bc
cmp di, 0x3c
mov edi, dword [ebp + 0x24]
jne 0x4601cb
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.0040565a
test eax, eax
pop ecx
pop ecx
jle 0x460a52
cmp dword [ebp + 0x4c], ebx
jle 0x460a52
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040567a
cmp dword [ebp - 0x28], ebx
pop ecx
pop ecx
jl 0x460a52
jg 0x46020e
cmp dword [ebp - 0x2c], ebx
jb 0x460a52
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040567a
pop ecx
pop ecx
mov ebx, 0x4d8d24
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.00410728
mov esi, eax
test esi, esi
je 0x460a4b
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 0x460a4b
jl 0x460264
cmp dword [ebp - 0x2c], eax
jae 0x460a4b
test ecx, ecx
jle 0x460a4b
cmp dword [ebp], 0
jg 0x460280
jl 0x46027a
cmp dword [ebp - 4], 0
ja 0x460280
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 0x4602a0
jg 0x46029a
cmp dword [ebp - 4], eax
jbe 0x4602a0
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov eax, dword [ebp - 4]
cmp ecx, eax
mov dword [ebp + 0x2c], ecx
jle 0x4602ad
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x2c], 0
jle 0x4603db
mov ecx, dword [ebp + 0x58]
mov eax, ecx
or eax, 0x20
add esi, ebx
cmp ax, 0x68
push 0x6f
pop edx
je 0x4602d5
cmp ax, 0x6e
je 0x4602d5
cmp ax, dx
jne 0x4602da
mov ecx, edx
mov dword [ebp + 0x58], ecx
cmp cx, 0x3a9
jne 0x460347
mov byte [ebp + 0x6f], 9
cmp cx, dx
mov dword [ebp + 0x54], ebx
jne 0x460301
mov eax, ebx
cdq
cmp edx, edi
jl 0x460301
jg 0x4602fb
cmp eax, dword [ebp + 0x20]
jbe 0x460301
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x54], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040567a
xor eax, eax
cmp dword [ebp - 0x18], eax
pop ecx
pop ecx
jne 0x460328
cmp dword [ebp - 0x14], eax
jne 0x46032b
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 0x4603e5
jg 0x46033c
cmp dword [ebp - 0x18], eax
jbe 0x4603e5
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
jmp 0x4603f2
cmp cx, 0x3f
jne 0x460353
mov byte [ebp + 0x6f], 8
jmp 0x4602e5
cmp cx, 0x7c
jne 0x46035f
mov byte [ebp + 0x6f], 7
jmp 0x4602e5
cmp cx, 0x26
jne 0x46036e
mov byte [ebp + 0x6f], 6
jmp 0x4602e5
cmp cx, 0x3a0
jne 0x46037e
mov byte [ebp + 0x6f], 5
jmp 0x4602e5
cmp cx, 0x3a3
jne 0x46038e
mov byte [ebp + 0x6f], 4
jmp 0x4602e5
cmp cx, 0x2e
jne 0x46039d
mov byte [ebp + 0x6f], 3
jmp 0x4602e5
cmp cx, 0x3e
jne 0x4603ac
mov byte [ebp + 0x6f], 2
jmp 0x4602e5
cmp cx, 0x5e
sete byte [ebp + 0x6f]
cmp byte [ebp + 0x6f], 0
jne 0x4602e5
cmp cx, 0x2b
je 0x4602e5
cmp cx, 0x23
je 0x4602e5
cmp cx, dx
je 0x4602e5
push 0x4d8d24
jmp 0x460a4c
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.0040567a
cmp dword [ebp + 0xc], 0
pop ecx
pop ecx
jg 0x46044e
jl 0x46040f
cmp dword [ebp + 8], 0
ja 0x46044e
cmp dword [ebp + 8], 0xfffe0000
jne 0x46041e
cmp dword [ebp + 0xc], 0xffffffff
je 0x460435
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp + 0x54]
push ebx
cdq
push edi
push edx
push eax
call fcn.004aa080
cdq
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0
jg 0x46044e
jl 0x460443
cmp dword [ebp + 8], 0
ja 0x46044e
and dword [ebp + 0xc], 0
mov dword [ebp + 8], 1
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0040567a
xor edi, edi
cmp dword [ebp - 0x3c], edi
pop ecx
pop ecx
jne 0x460475
cmp dword [ebp - 0x38], edi
jne 0x460475
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 0x4604a7
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 0x4604e7
mov byte [ebp + 0x66], 3
jmp 0x4604f9
cmp ecx, 4
jl 0x4604f2
mov byte [ebp + 0x66], 2
jmp 0x4604f9
cmp ecx, 2
setge byte [ebp + 0x66]
mov eax, dword [ebp + 0x58]
cmp ax, 0x3e
je 0x46051f
cmp ax, 0x2e
je 0x46051f
cmp ax, 0x26
je 0x46051f
cmp ax, 0x7c
je 0x46051f
cmp word [ebp + 0x78], 0x3f
mov byte [ebp + 0x53], 1
jne 0x460523
mov byte [ebp + 0x53], 0
add dword [ebp + 8], 0xffffffff
adc dword [ebp + 0xc], 0xffffffff
js 0x4608bf
jg 0x46053c
cmp dword [ebp + 8], edi
jb 0x4608bf
cmp word [ebp + 0x58], 0x23
jne 0x460596
mov edi, dword [ebp + 0x38]
mov eax, dword [ebp - 0x54]
lea ecx, [edi + eax]
jmp 0x46055c
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 0x46054e
cmp dword [ebp + 0x34], 0
jle 0x460a15
push dword [ebp + 0x34]
lea eax, [ebp - 0x64]
push esi
push eax
call fcn.00413de4
push dword [ebp + 0x34]
push edi
push esi
call fcn.00413de4
push dword [ebp + 0x34]
lea eax, [ebp - 0x64]
push eax
push edi
call fcn.00413de4
add esp, 0x24
jmp 0x460a15
cmp word [ebp + 0x58], 0x6f
jne 0x460633
cmp ebx, 1
mov eax, dword [ebp + 0x44]
jg 0x4605e3
dec eax
js 0x460a15
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 0x4605d6
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 0x4605c7
add esi, dword [ebp - 0x44]
dec dword [ebp + 0x54]
jne 0x4605b8
jmp 0x460a15
dec eax
js 0x460a15
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 0x460626
lea ecx, [edi + 1]
mov dword [ebp + 0x54], ecx
lea ecx, [ebx - 1]
test ecx, ecx
jl 0x46061c
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 0x46060d
lea ecx, [ebx + ebx]
sub eax, ecx
dec dword [ebp + 0x54]
jne 0x460601
add esi, dword [ebp - 0x44]
dec dword [ebp - 0x20]
jne 0x4605f2
jmp 0x460a15
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 0x46090b
dec eax
je 0x460820
dec eax
je 0x460718
and byte [ebp + 0x7b], 7
mov bl, 8
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x46070b
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x460690
jmp dword [eax*4 + 0x4614e9]
add byte [esi], cl
jmp case.default.0x460690
cmp word [ebp + 0x58], 0x5e
jne case.default.0x460690
xor byte [esi], cl
jmp case.default.0x460690
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 0x4606e3
mov byte [esi], cl
jmp case.default.0x460690
movsx eax, byte [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x460690
push dword [ebp + 0x60]
movsx eax, byte [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004aa130
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x460690
and byte [esi], cl
jmp case.default.0x460690
or byte [esi], cl
jmp case.default.0x460690
test byte [esi], cl
je case.default.0x460690
mov eax, esi
sub eax, dword [ebp + 0x14]
jmp 0x4608b5
test byte [esi], cl
je case.default.0x460690
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
inc esi
cmp esi, edi
jb 0x460687
jmp 0x4609c3
and byte [ebp + 0x7b], 0x3f
mov bl, 0x40
sub bl, byte [ebp + 0x7b]
cmp esi, edi
mov byte [ebp + 0x67], bl
jae 0x4609c3
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.0x460745
jmp dword [eax*4 + 0x461511]
add dword [esi], edx
adc dword [esi + 4], edi
jmp case.default.0x460745
cmp word [ebp + 0x58], 0x5e
jne case.default.0x460745
xor dword [esi], edx
xor dword [esi + 4], edi
jmp case.default.0x460745
mov edi, dword [esi]
movzx ecx, byte [ebp + 0x20]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.004ac980
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.004ac8b0
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 0x4607d1
mov dword [esi], edx
mov dword [esi + 4], edi
jmp case.default.0x460745
mov eax, dword [esi]
add dword [ebp + 0x5c], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x60], eax
jmp case.default.0x460745
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [esi + 4]
push dword [esi]
call fcn.004aa130
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov edx, dword [ebp + 0x20]
jmp case.default.0x460745
and dword [esi], edx
and dword [esi + 4], edi
jmp case.default.0x460745
or dword [esi], edx
or dword [esi + 4], edi
jmp case.default.0x460745
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
jne 0x4608ac
mov edi, dword [ebp + 0x24]
jmp case.default.0x460745
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
je case.default.0x460745
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, dword [ebp - 0x40]
jb 0x460739
jmp 0x4609c3
and byte [ebp + 0x7b], 0x1f
mov bl, 0x20
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x4608fe
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x46083e
jmp dword [eax*4 + 0x461539]
add dword [esi], ecx
jmp case.default.0x46083e
cmp word [ebp + 0x58], 0x5e
jne case.default.0x46083e
xor dword [esi], ecx
jmp case.default.0x46083e
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 0x46089b
mov dword [esi], ecx
jmp case.default.0x46083e
mov eax, dword [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x46083e
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push 0
push dword [esi]
call fcn.004aa130
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x46083e
and dword [esi], ecx
jmp case.default.0x46083e
or dword [esi], ecx
jmp case.default.0x46083e
test dword [esi], ecx
je case.default.0x46083e
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 0x4608df
push str._I64d
push dword [ebp + 0x18]
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [ebp + 0x30]
call fcn.0044652a
add esp, 0x14
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x461266
test dword [esi], ecx
je case.default.0x46083e
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, edi
jb 0x460831
jmp 0x4609c3
and byte [ebp + 0x7b], 0xf
mov bl, 0x10
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x4609bb
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x460929
jmp dword [eax*4 + 0x461561]
add word [esi], cx
jmp case.default.0x460929
cmp word [ebp + 0x58], 0x5e
jne case.default.0x460929
xor word [esi], cx
jmp case.default.0x460929
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 0x460987
mov word [esi], cx
jmp case.default.0x460929
movsx eax, word [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x460929
push dword [ebp + 0x60]
movsx eax, word [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004aa130
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x460929
and word [esi], cx
jmp case.default.0x460929
or word [esi], cx
jmp case.default.0x460929
movzx eax, word [esi]
movsx edx, cx
test edx, eax
jne 0x4608ac
jmp case.default.0x460929
movzx eax, word [esi]
movsx edx, cx
test edx, eax
je case.default.0x460929
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, edi
jb 0x46091c
mov edi, dword [ebp - 0x20]
test edi, edi
jle 0x4609fa
cmp byte [ebp + 0x53], 0
je 0x4609fa
push edi
lea eax, [ebp - 0x34]
push esi
push eax
call fcn.00413de4
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 0x46065b
cmp dword [ebp + 0x54], 0
je 0x460a12
push dword [ebp + 0x54]
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 4]
call fcn.00413de4
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 0x46053c
jl 0x4608bf
cmp dword [ebp + 8], 0
jae 0x46053c
jmp 0x4608bf
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x461266
mov ecx, dword [ebp + 0x68]
push 0x2c
pop edi
cmp word [ecx], di
lea eax, [ecx + 2]
mov dword [ebp], eax
jne 0x460a90
push 1
mov dword [ebp + 0x68], eax
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.00456f8f
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.00446e14
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x460abc
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.00456f8f
push ebx
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.00446d58
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x460ae8
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.00456f8f
push ebx
lea ecx, [ebp + 0x3c]
push ecx
push eax
call fcn.00446d58
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov ax, word [esi]
cmp ax, bx
je 0x461263
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
je 0x461263
mov ecx, dword [ebp - 0x24]
cmp word [ecx], bx
je 0x461263
mov edx, dword [ebp + 0x3c]
cmp word [edx], bx
je 0x461263
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 0x460b6c
cmp word [esi + 2], cx
jne 0x460b5d
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x43], 2
mov byte [ebp + 0x53], al
jne 0x460b6f
inc esi
inc esi
mov byte [ebp + 0x43], 3
jmp 0x460b6f
cmp ax, cx
jne 0x460b6c
mov al, byte [esi]
mov byte [ebp + 0x53], al
add esi, 2
jmp 0x460b6f
mov al, byte [ebp - 9]
cmp word [esi], 0x2d
jne 0x460b79
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x460a52
push esi
push 0x4c6048
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460b9b
mov byte [ebp + 0x6f], 1
jmp 0x460cae
push esi
push str.ANSI
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460bb4
mov dword [ebp + 0x4c], edi
jmp 0x460cae
push esi
push 0x4c6044
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460bd1
mov dword [ebp + 0x4c], 0x3a8
jmp 0x460cae
push esi
push str.BIG5
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460bee
mov dword [ebp + 0x4c], 0x3b6
jmp 0x460cae
push esi
push str.UTF8
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460c0b
mov dword [ebp + 0x4c], 0xfde9
jmp 0x460cae
push esi
push str.UTF7
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460c28
mov dword [ebp + 0x4c], 0xfde8
jmp 0x460cae
push esi
push str.UNICODE
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460c42
mov dword [ebp + 0x58], 0x4b0
jmp 0x460cae
push esi
push 0x4bdda8
call fcn.0043ef29
test al, al
pop ecx
pop ecx
jne 0x460c39
push esi
push str.UNICODEB
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460c6d
mov dword [ebp + 0x58], 0x4b1
jmp 0x460cae
push esi
push str.UNIB
call fcn.0043ef29
test al, al
pop ecx
pop ecx
jne 0x460c64
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.004439f7
add esp, 4
test al, al
je 0x460c9c
push esi
call fcn.00444bbe
pop ecx
mov dword [ebp + 0x4c], eax
jmp 0x460cae
cmp cx, di
jne 0x460a52
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 0x460cdf
cmp word [edx + 2], ax
jne 0x460ccd
mov byte [ebp + 0x7b], al
mov cl, al
mov byte [ebp + 0x66], al
lea ebx, [edx + 4]
jmp 0x460ce2
cmp ax, 0x2a
jne 0x460cdf
mov al, byte [edx]
mov byte [ebp + 0x7b], al
mov cl, al
lea ebx, [edx + 2]
jmp 0x460ce2
mov cl, byte [ebp - 0x19]
cmp word [ebx], 0x2d
jne 0x460cec
mov cl, byte [ebx]
inc ebx
inc ebx
test cl, cl
je 0x460a52
push ebx
push str.ANSI
call fcn.0043ef29
test al, al
pop ecx
pop ecx
mov esi, 0x4c3208
mov edi, 0x4c320c
je 0x460d18
and dword [ebp + 0x18], 0
jmp 0x460e2d
push ebx
push 0x4c6044
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460d35
mov dword [ebp + 0x18], 0x3a8
jmp 0x460e2d
push ebx
push str.BIG5
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460d52
mov dword [ebp + 0x18], 0x3b6
jmp 0x460e2d
push ebx
push str.UTF8
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460d7d
mov dword [ebp + 0x18], 0xfde9
mov dword [ebp + 0x1c], 0x4c3210
mov dword [ebp + 0x2c], 3
jmp 0x460e2d
push ebx
push str.UTF7
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460d9a
mov dword [ebp + 0x18], 0xfde8
jmp 0x460e2d
push ebx
push str.UNICODE
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460dbe
mov dword [ebp + 0x14], 0x4b0
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x2c], 2
jmp 0x460e2d
push ebx
push 0x4bdda8
call fcn.0043ef29
test al, al
pop ecx
pop ecx
jne 0x460dab
push ebx
push str.UNICODEB
call fcn.0043ef29
test al, al
pop ecx
pop ecx
jne 0x460df1
push ebx
push str.UNIB
call fcn.0043ef29
test al, al
pop ecx
pop ecx
je 0x460dfd
mov dword [ebp + 0x14], 0x4b1
mov dword [ebp + 0x1c], edi
jmp 0x460db5
xor ecx, ecx
mov cx, word [ebx]
push ecx
call fcn.004439f7
add esp, 4
test al, al
je 0x460e1b
push ebx
call fcn.00444bbe
pop ecx
mov dword [ebp + 0x18], eax
jmp 0x460e2d
test cx, cx
jne 0x460a52
xor eax, eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp - 8], eax
cmp byte [ebp + 0x67], 0
je 0x460e37
and dword [ebp + 0x1c], 0
xor ebx, ebx
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x44], ebx
call fcn.00443de7
xor edi, edi
cmp byte [ebp + 0x53], 0
mov byte [ebp + 0x65], 0
jne 0x460ff7
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.00456f8f
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.00446d58
push dword [ebp + 0x10]
call fcn.00412ae5
add esp, 0x10
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x34]
call fcn.0040569f
mov edi, dword [ebp + 0x34]
cmp edi, ebx
jne 0x460ec2
lea ecx, [ebp + 0x34]
call fcn.00402cb5
lea ecx, [ebp + 0x48]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.00402cb5
jmp 0x461266
push 2
push ebx
push ebx
push edi
call fcn.0043edf6
push 1
push ebx
push ebx
push edi
call fcn.0043edf6
push ebx
push ebx
mov esi, eax
push ebx
push edi
mov dword [ebp + 4], esi
call fcn.0043edf6
add esp, 0x30
add esi, 0xa
push esi
lea ecx, [ebp + 0x48]
call fcn.00443e29
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 0x460f2b
lea ecx, [ebp + 0x34]
call fcn.00402cb5
jmp 0x461253
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 0x460f4a
cmp dword [ebp + 0x58], 0x4b0
jne 0x460f74
push 2
push 0x4c3208
push esi
call fcn.0043dbb8
add esp, 0xc
test eax, eax
jne 0x460f6e
mov dword [ebp + 0x58], 0x4b0
mov dword [ebp + 0x38], 2
jmp 0x460fcb
cmp byte [ebp + 0x6f], 0
jne 0x460f7d
cmp dword [ebp + 0x58], 0x4b1
jne 0x460fa0
push 2
push 0x4c320c
push esi
call fcn.0043dbb8
add esp, 0xc
test eax, eax
jne 0x460f9a
mov dword [ebp + 0x58], 0x4b1
jmp 0x460f65
cmp byte [ebp + 0x6f], 0
jne 0x460fa9
cmp dword [ebp + 0x4c], 0xfde9
jne 0x460fe3
push 3
push 0x4c3210
push esi
call fcn.0043dbb8
add esp, 0xc
test eax, eax
jne 0x460fe3
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.00413d9a
add esp, 0xc
sub edi, dword [ebp + 0x38]
jns 0x460fea
xor edi, edi
lea ecx, [ebp + 0x34]
call fcn.00402cb5
jmp 0x4610d6
cmp byte [ebp + 0x43], 0
je 0x461092
mov ecx, dword [ebp + 0x30]
xor esi, esi
push esi
lea eax, [ebp + 0x10]
push eax
call fcn.00402eb0
mov ecx, dword [ebp + 0x30]
push esi
push 0xffffffffffffffff
push esi
push dword [ebp + 0x10]
call fcn.00410728
mov ebx, eax
cmp ebx, esi
je 0x461073
cmp byte [ebp + 0x43], 3
jne 0x461041
push dword [ebx + 4]
lea eax, [ebp + 0x48]
push eax
call fcn.00448792
pop ecx
pop ecx
mov edi, eax
mov byte [ebp + 0x65], 2
jmp 0x46107d
mov edi, dword [ebx + 0x10]
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x48]
call fcn.00443e29
mov esi, dword [ebp + 0x48]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.004aa020
push edi
push dword [ebx + 4]
push esi
call fcn.00413de4
add esp, 0x18
mov byte [ebp + 0x65], 1
jmp 0x461080
push 8
lea ecx, [ebp + 0x48]
call fcn.00443e29
mov esi, dword [ebp + 0x48]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.004aa020
add esp, 0xc
jmp 0x4610d6
cmp dword [ebp + 0x54], ebx
je 0x4610bf
push 0xffffffffffffffff
push dword [ebp + 0x10]
lea ecx, [ebp + 0x48]
call fcn.0044407f
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.00443e29
jmp 0x4610cf
push dword [ebp + 0x10]
lea eax, [ebp + 0x48]
push eax
call fcn.00448792
pop ecx
pop ecx
mov edi, eax
mov esi, dword [ebp + 0x48]
mov byte [ebp + 0x65], 2
test edi, edi
jl 0x461253
cmp byte [ebp + 0x6f], 0
je 0x461161
cmp byte [ebp + 0x65], 0
je 0x461161
push 2
push 0x4c3208
push esi
xor ebx, ebx
call fcn.0043dbb8
add esp, 0xc
test eax, eax
push 2
jne 0x46110b
mov dword [ebp + 0x58], 0x4b0
jmp 0x461145
push 0x4c320c
push esi
call fcn.0043dbb8
add esp, 0xc
test eax, eax
jne 0x461128
mov dword [ebp + 0x58], 0x4b1
push 2
jmp 0x461145
push 3
push 0x4c3210
push esi
call fcn.0043dbb8
add esp, 0xc
test eax, eax
jne 0x46115b
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.00413d9a
add esp, 0xc
sub edi, ebx
jns 0x461161
xor edi, edi
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x38], esi
mov dword [ebp + 4], esi
call fcn.00443f5b
mov ebx, dword [ebp + 0x18]
cmp ebx, dword [ebp + 0x4c]
jne 0x4611ff
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x58]
jne 0x4611ff
cmp byte [ebp + 0x66], 0
je 0x4611a1
push 0
lea eax, [ebp + 0x3c]
push eax
push edi
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x30]
call fcn.0045067b
add esp, 0x18
jmp 0x4611e3
cmp byte [ebp + 0x7b], 0
jne 0x4611b3
push edi
push esi
lea ecx, [ebp + 0x44]
call fcn.0043d954
jmp 0x4611e3
cmp dword [ebp - 8], 0
jne 0x4611cc
push edi
lea eax, [ebp + 0x68]
push esi
push eax
call fcn.0044870b
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x4611d8
cmp dword [ebp + 0x54], 0
je 0x4611d7
push dword [ebp + 0x10]
jmp 0x4611d8
push esi
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x30]
call fcn.00443666
lea ecx, [ebp + 0x68]
call fcn.0043db4f
lea ecx, [ebp + 0x48]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.00402cb5
xor esi, esi
jmp 0x461266
cmp dword [ebp + 0x58], 0x4b1
jne 0x46121b
push edi
push esi
mov dword [ebp + 0x58], 0x4b0
call fcn.00441fa1
pop ecx
pop ecx
and edi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x46129a
push dword [ebp + 0x3c]
call fcn.00412ae5
pop ecx
push 0
push 0x80
push 4
push 0
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x44]
call fcn.0040569f
cmp dword [ebp + 0x44], 0
jne 0x46129a
lea ecx, [ebp + 0x68]
call fcn.0043db4f
lea ecx, [ebp + 0x48]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.00402cb5
xor esi, esi
inc esi
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp - 0x24]
call fcn.0043db4f
lea ecx, [ebp + 0x10]
call fcn.0043db4f
lea ecx, [ebp + 0x28]
call fcn.0043db4f
lea ecx, [ebp - 0x50]
call fcn.0043db4f
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 0x4612b1
cmp dword [ebp + 0x4c], ebx
je 0x4612bb
cmp dword [ebp + 0x4c], eax
jne 0x461329
cmp dword [ebp + 0x18], ebx
jne 0x461329
cmp byte [ebp + 0x42], 0
je 0x4612c5
mov byte [ebp + 0x42], 3
lea ecx, [ebp + 0x34]
call fcn.00443de7
xor eax, eax
cmp dword [ebp + 0x18], ebx
sete al
push eax
lea eax, [ebp + 0x34]
push eax
push esi
call fcn.0044881f
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 0x461321
cmp byte [ebp + 0x7b], 0
jne 0x461321
test edi, edi
jle 0x461314
push edi
push esi
lea ecx, [ebp + 0x44]
call fcn.0043d954
lea ecx, [ebp + 0x34]
call fcn.0043db4f
jmp 0x4614c1
lea ecx, [ebp + 0x34]
call fcn.0043db4f
mov ebx, edi
shr ebx, 1
cmp dword [ebp + 0x58], 0
jne 0x46136c
lea ebx, [edi + 0xa]
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.00443fa0
push ebx
push dword [ebp + 0x68]
push edi
push esi
push 0
push dword [ebp + 0x4c]
call dword [0x4d7be4]
mov ebx, eax
test ebx, ebx
jge 0x46135b
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 0x461380
push edi
push dword [ebp + 0x38]
call fcn.00441fa1
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x14], eax
jle 0x461411
cmp byte [ebp + 0x66], al
je 0x4613ae
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.0045067b
add esp, 0x18
jmp 0x4614d1
cmp byte [ebp + 0x7b], 0
jne 0x4613d9
cmp edi, eax
jle 0x4614c1
cmp dword [ebp + 0x1c], 0
je 0x4613d0
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x1c]
call fcn.0043d954
push edi
push dword [ebp + 0x38]
jmp 0x461476
cmp dword [ebp - 8], eax
jne 0x461416
lea ecx, [ebp + 0x78]
call fcn.00443f5b
push ebx
push dword [ebp + 0x38]
lea eax, [ebp + 0x78]
push eax
call fcn.0044876c
mov ecx, dword [ebp + 0x30]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x3c]
call fcn.00443666
lea ecx, [ebp + 0x78]
call fcn.0043db4f
jmp 0x4614c1
cmp dword [ebp - 8], eax
je 0x46141e
push dword [ebp + 4]
jmp 0x4614b6
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.00443e29
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 0x461452
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [ebx + esi], 0
jne 0x461480
test esi, esi
jle 0x4614c1
cmp dword [ebp + 0x1c], 0
je 0x461474
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x1c]
call fcn.0043d954
push esi
push ebx
lea ecx, [ebp + 0x44]
call fcn.0043d954
jmp 0x4614c1
cmp byte [ebp + 0x66], 0
je 0x4614a5
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.0045067b
add esp, 0x18
jmp 0x4614c1
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.0044870b
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x30]
call fcn.00443666
xor esi, esi
cmp dword [ebp + 0x44], esi
je 0x4614d1
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x54]
call fcn.0043db4f
lea ecx, [ebp + 0x68]
call fcn.0043db4f
jmp 0x460ead