Function at 0x4605b2
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.0044646b
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
lea ecx, [ebp + 0x28]
call fcn.004441a1
lea ecx, [ebp + 0x10]
call fcn.004441a1
lea ecx, [ebp - 0x24]
call fcn.004441a1
lea ecx, [ebp + 0x3c]
call fcn.004441a1
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.0045708a
push 0
lea ecx, [ebp + 0x28]
push ecx
push eax
call fcn.00446f11
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 0x460659
call fcn.0040f4c7
test al, al
je 0x460643
mov edi, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x460638
test edi, edi
je 0x460659
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 0x4606dc
cmp word [esi], 0x2a
jne 0x4606dc
cmp word [eax + 2], 0x2d
je 0x4606dc
push 6
lea eax, [ebp + 0x78]
push eax
push str.nobom
call fcn.004460ea
add esp, 0xc
test al, al
je 0x46068c
mov byte [ebp + 0x67], 1
jmp 0x4606d0
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4606a9
mov byte [ebp + 0x42], 1
jmp 0x4606d0
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c6078
call fcn.004460ea
add esp, 0xc
test al, al
je 0x4606c6
mov byte [ebp + 0x65], 1
jmp 0x4606d0
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 0x460668
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 0x46071a
push edi
lea ecx, [ebp + 0x54]
call fcn.0044cf2d
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.0043dd41
mov esi, dword [ebp + 0x28]
cmp byte [ebp + 0x65], 0
je 0x461181
mov ecx, dword [ebp + 0x30]
push ebx
lea eax, [ebp + 0x28]
push eax
call fcn.00402ed1
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.00454cef
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 0x460763
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.0043dcd9
pop ecx
mov ecx, dword [ebp + 0x68]
xor edi, edi
mov di, word [ecx]
cmp di, bx
mov dword [ebp + 0x58], edi
je 0x461177
cmp di, 0x2b
mov edx, 0x3a0
jne 0x4607a0
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x4607d0
mov edi, 0x3a3
mov ecx, eax
mov dword [ebp + 0x58], edi
jmp 0x4607d0
cmp di, 0x2a
jne 0x4607b5
lea eax, [ecx + 2]
cmp word [eax], di
jne 0x4607d0
mov edi, edx
mov ecx, eax
mov dword [ebp + 0x58], edi
cmp di, dx
jne 0x4607c2
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x60], ebx
jmp 0x4607d0
cmp di, 0x3f
jne 0x4607d0
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.0043dcd9
cmp di, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x4607f2
mov dword [ebp + 0x78], 0x3f
jmp 0x460807
cmp di, 0x3a3
mov dword [ebp + 0x78], edi
je 0x460807
cmp di, dx
je 0x460807
cmp di, 0x3f
jne 0x46086b
cmp word [esi], 0x2c
je 0x460871
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x18], esi
call fcn.00405636
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
pop ecx
je 0x46082b
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x68], eax
cmp word [ebp + 0x78], 0x3f
jne 0x460876
jmp 0x460845
mov ax, word [esi]
cmp ax, 0x2b
je 0x46084c
cmp ax, 0x2d
je 0x460854
inc esi
inc esi
cmp word [esi], bx
jne 0x460834
jmp 0x460876
lea eax, [esi + 2]
mov dword [ebp + 0x54], eax
jmp 0x460857
mov dword [ebp + 0x54], esi
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00447492
pop ecx
pop ecx
mov word [esi], bx
jmp 0x460876
cmp word [esi], 0x2c
jne 0x460876
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.00405656
test eax, eax
pop ecx
pop ecx
jle 0x461177
cmp di, 0x2d
jne 0x4608d1
mov edi, dword [ebp + 0x24]
mov dword [ebp + 0x58], 0x2b
jmp 0x4608e1
cmp di, 0x3c
mov edi, dword [ebp + 0x24]
jne 0x4608f0
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.0047b6b7
test eax, eax
pop ecx
pop ecx
jle 0x461177
cmp dword [ebp + 0x4c], ebx
jle 0x461177
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405656
cmp dword [ebp - 0x28], ebx
pop ecx
pop ecx
jl 0x461177
jg 0x460933
cmp dword [ebp - 0x2c], ebx
jb 0x461177
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405656
pop ecx
pop ecx
mov ebx, 0x4d8d1c
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.004108b2
mov esi, eax
test esi, esi
je 0x461170
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 0x461170
jl 0x460989
cmp dword [ebp - 0x2c], eax
jae 0x461170
test ecx, ecx
jle 0x461170
cmp dword [ebp], 0
jg 0x4609a5
jl 0x46099f
cmp dword [ebp - 4], 0
ja 0x4609a5
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 0x4609c5
jg 0x4609bf
cmp dword [ebp - 4], eax
jbe 0x4609c5
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov eax, dword [ebp - 4]
cmp ecx, eax
mov dword [ebp + 0x2c], ecx
jle 0x4609d2
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x2c], 0
jle 0x460b00
mov ecx, dword [ebp + 0x58]
mov eax, ecx
or eax, 0x20
add esi, ebx
cmp ax, 0x68
push 0x6f
pop edx
je 0x4609fa
cmp ax, 0x6e
je 0x4609fa
cmp ax, dx
jne 0x4609ff
mov ecx, edx
mov dword [ebp + 0x58], ecx
cmp cx, 0x3a9
jne 0x460a6c
mov byte [ebp + 0x6f], 9
cmp cx, dx
mov dword [ebp + 0x54], ebx
jne 0x460a26
mov eax, ebx
cdq
cmp edx, edi
jl 0x460a26
jg 0x460a20
cmp eax, dword [ebp + 0x20]
jbe 0x460a26
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x54], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405656
xor eax, eax
cmp dword [ebp - 0x18], eax
pop ecx
pop ecx
jne 0x460a4d
cmp dword [ebp - 0x14], eax
jne 0x460a50
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 0x460b0a
jg 0x460a61
cmp dword [ebp - 0x18], eax
jbe 0x460b0a
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
jmp 0x460b17
cmp cx, 0x3f
jne 0x460a78
mov byte [ebp + 0x6f], 8
jmp 0x460a0a
cmp cx, 0x7c
jne 0x460a84
mov byte [ebp + 0x6f], 7
jmp 0x460a0a
cmp cx, 0x26
jne 0x460a93
mov byte [ebp + 0x6f], 6
jmp 0x460a0a
cmp cx, 0x3a0
jne 0x460aa3
mov byte [ebp + 0x6f], 5
jmp 0x460a0a
cmp cx, 0x3a3
jne 0x460ab3
mov byte [ebp + 0x6f], 4
jmp 0x460a0a
cmp cx, 0x2e
jne 0x460ac2
mov byte [ebp + 0x6f], 3
jmp 0x460a0a
cmp cx, 0x3e
jne 0x460ad1
mov byte [ebp + 0x6f], 2
jmp 0x460a0a
cmp cx, 0x5e
sete byte [ebp + 0x6f]
cmp byte [ebp + 0x6f], 0
jne 0x460a0a
cmp cx, 0x2b
je 0x460a0a
cmp cx, 0x23
je 0x460a0a
cmp cx, dx
je 0x460a0a
push 0x4d8d1c
jmp 0x461171
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.00405656
cmp dword [ebp + 0xc], 0
pop ecx
pop ecx
jg 0x460b73
jl 0x460b34
cmp dword [ebp + 8], 0
ja 0x460b73
cmp dword [ebp + 8], 0xfffe0000
jne 0x460b43
cmp dword [ebp + 0xc], 0xffffffff
je 0x460b5a
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp + 0x54]
push ebx
cdq
push edi
push edx
push eax
call fcn.004aa100
cdq
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], edx
cmp dword [ebp + 0xc], 0
jg 0x460b73
jl 0x460b68
cmp dword [ebp + 8], 0
ja 0x460b73
and dword [ebp + 0xc], 0
mov dword [ebp + 8], 1
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405656
xor edi, edi
cmp dword [ebp - 0x3c], edi
pop ecx
pop ecx
jne 0x460b9a
cmp dword [ebp - 0x38], edi
jne 0x460b9a
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 0x460bcc
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 0x460c0c
mov byte [ebp + 0x66], 3
jmp 0x460c1e
cmp ecx, 4
jl 0x460c17
mov byte [ebp + 0x66], 2
jmp 0x460c1e
cmp ecx, 2
setge byte [ebp + 0x66]
mov eax, dword [ebp + 0x58]
cmp ax, 0x3e
je 0x460c44
cmp ax, 0x2e
je 0x460c44
cmp ax, 0x26
je 0x460c44
cmp ax, 0x7c
je 0x460c44
cmp word [ebp + 0x78], 0x3f
mov byte [ebp + 0x53], 1
jne 0x460c48
mov byte [ebp + 0x53], 0
add dword [ebp + 8], 0xffffffff
adc dword [ebp + 0xc], 0xffffffff
js 0x460fe4
jg 0x460c61
cmp dword [ebp + 8], edi
jb 0x460fe4
cmp word [ebp + 0x58], 0x23
jne 0x460cbb
mov edi, dword [ebp + 0x38]
mov eax, dword [ebp - 0x54]
lea ecx, [edi + eax]
jmp 0x460c81
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 0x460c73
cmp dword [ebp + 0x34], 0
jle 0x46113a
push dword [ebp + 0x34]
lea eax, [ebp - 0x64]
push esi
push eax
call fcn.00413fe3
push dword [ebp + 0x34]
push edi
push esi
call fcn.00413fe3
push dword [ebp + 0x34]
lea eax, [ebp - 0x64]
push eax
push edi
call fcn.00413fe3
add esp, 0x24
jmp 0x46113a
cmp word [ebp + 0x58], 0x6f
jne 0x460d58
cmp ebx, 1
mov eax, dword [ebp + 0x44]
jg 0x460d08
dec eax
js 0x46113a
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 0x460cfb
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 0x460cec
add esi, dword [ebp - 0x44]
dec dword [ebp + 0x54]
jne 0x460cdd
jmp 0x46113a
dec eax
js 0x46113a
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 0x460d4b
lea ecx, [edi + 1]
mov dword [ebp + 0x54], ecx
lea ecx, [ebx - 1]
test ecx, ecx
jl 0x460d41
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 0x460d32
lea ecx, [ebx + ebx]
sub eax, ecx
dec dword [ebp + 0x54]
jne 0x460d26
add esi, dword [ebp - 0x44]
dec dword [ebp - 0x20]
jne 0x460d17
jmp 0x46113a
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 0x461030
dec eax
je 0x460f45
dec eax
je 0x460e3d
and byte [ebp + 0x7b], 7
mov bl, 8
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x460e30
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x460db5
jmp dword [eax*4 + 0x461c0e]
add byte [esi], cl
jmp case.default.0x460db5
cmp word [ebp + 0x58], 0x5e
jne case.default.0x460db5
xor byte [esi], cl
jmp case.default.0x460db5
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 0x460e08
mov byte [esi], cl
jmp case.default.0x460db5
movsx eax, byte [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x460db5
push dword [ebp + 0x60]
movsx eax, byte [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004aa1b0
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x460db5
and byte [esi], cl
jmp case.default.0x460db5
or byte [esi], cl
jmp case.default.0x460db5
test byte [esi], cl
je case.default.0x460db5
mov eax, esi
sub eax, dword [ebp + 0x14]
jmp 0x460fda
test byte [esi], cl
je case.default.0x460db5
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
inc esi
cmp esi, edi
jb 0x460dac
jmp 0x4610e8
and byte [ebp + 0x7b], 0x3f
mov bl, 0x40
sub bl, byte [ebp + 0x7b]
cmp esi, edi
mov byte [ebp + 0x67], bl
jae 0x4610e8
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.0x460e6a
jmp dword [eax*4 + 0x461c36]
add dword [esi], edx
adc dword [esi + 4], edi
jmp case.default.0x460e6a
cmp word [ebp + 0x58], 0x5e
jne case.default.0x460e6a
xor dword [esi], edx
xor dword [esi + 4], edi
jmp case.default.0x460e6a
mov edi, dword [esi]
movzx ecx, byte [ebp + 0x20]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.004aca00
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.004ac930
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 0x460ef6
mov dword [esi], edx
mov dword [esi + 4], edi
jmp case.default.0x460e6a
mov eax, dword [esi]
add dword [ebp + 0x5c], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x60], eax
jmp case.default.0x460e6a
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [esi + 4]
push dword [esi]
call fcn.004aa1b0
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov edx, dword [ebp + 0x20]
jmp case.default.0x460e6a
and dword [esi], edx
and dword [esi + 4], edi
jmp case.default.0x460e6a
or dword [esi], edx
or dword [esi + 4], edi
jmp case.default.0x460e6a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
jne 0x460fd1
mov edi, dword [ebp + 0x24]
jmp case.default.0x460e6a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
je case.default.0x460e6a
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, dword [ebp - 0x40]
jb 0x460e5e
jmp 0x4610e8
and byte [ebp + 0x7b], 0x1f
mov bl, 0x20
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x461023
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x460f63
jmp dword [eax*4 + 0x461c5e]
add dword [esi], ecx
jmp case.default.0x460f63
cmp word [ebp + 0x58], 0x5e
jne case.default.0x460f63
xor dword [esi], ecx
jmp case.default.0x460f63
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 0x460fc0
mov dword [esi], ecx
jmp case.default.0x460f63
mov eax, dword [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x460f63
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push 0
push dword [esi]
call fcn.004aa1b0
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x460f63
and dword [esi], ecx
jmp case.default.0x460f63
or dword [esi], ecx
jmp case.default.0x460f63
test dword [esi], ecx
je case.default.0x460f63
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 0x461004
push str._I64d
push dword [ebp + 0x18]
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
push dword [ebp + 0x30]
call fcn.004466e3
add esp, 0x14
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46198b
test dword [esi], ecx
je case.default.0x460f63
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, edi
jb 0x460f56
jmp 0x4610e8
and byte [ebp + 0x7b], 0xf
mov bl, 0x10
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x4610e0
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x46104e
jmp dword [eax*4 + 0x461c86]
add word [esi], cx
jmp case.default.0x46104e
cmp word [ebp + 0x58], 0x5e
jne case.default.0x46104e
xor word [esi], cx
jmp case.default.0x46104e
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 0x4610ac
mov word [esi], cx
jmp case.default.0x46104e
movsx eax, word [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
jmp case.default.0x46104e
push dword [ebp + 0x60]
movsx eax, word [esi]
push dword [ebp + 0x5c]
cdq
push edx
push eax
call fcn.004aa1b0
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
mov ecx, dword [ebp + 0x20]
jmp case.default.0x46104e
and word [esi], cx
jmp case.default.0x46104e
or word [esi], cx
jmp case.default.0x46104e
movzx eax, word [esi]
movsx edx, cx
test edx, eax
jne 0x460fd1
jmp case.default.0x46104e
movzx eax, word [esi]
movsx edx, cx
test edx, eax
je case.default.0x46104e
add dword [ebp + 0x5c], 1
adc dword [ebp + 0x60], 0
add esi, dword [ebp + 0x4c]
cmp esi, edi
jb 0x461041
mov edi, dword [ebp - 0x20]
test edi, edi
jle 0x46111f
cmp byte [ebp + 0x53], 0
je 0x46111f
push edi
lea eax, [ebp - 0x34]
push esi
push eax
call fcn.00413fe3
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 0x460d80
cmp dword [ebp + 0x54], 0
je 0x461137
push dword [ebp + 0x54]
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 4]
call fcn.00413fe3
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 0x460c61
jl 0x460fe4
cmp dword [ebp + 8], 0
jae 0x460c61
jmp 0x460fe4
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x46198b
mov ecx, dword [ebp + 0x68]
push 0x2c
pop edi
cmp word [ecx], di
lea eax, [ecx + 2]
mov dword [ebp], eax
jne 0x4611b5
push 1
mov dword [ebp + 0x68], eax
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.0045708a
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.00446fcd
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x4611e1
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.0045708a
push ebx
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.00446f11
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], di
jne 0x46120d
add dword [ebp + 0x68], 2
push 1
push edi
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x50]
call fcn.0045708a
push ebx
lea ecx, [ebp + 0x3c]
push ecx
push eax
call fcn.00446f11
mov esi, dword [ebp + 0x28]
add esp, 0xc
mov ax, word [esi]
cmp ax, bx
je 0x461988
mov ecx, dword [ebp + 0x10]
cmp word [ecx], bx
je 0x461988
mov ecx, dword [ebp - 0x24]
cmp word [ecx], bx
je 0x461988
mov edx, dword [ebp + 0x3c]
cmp word [edx], bx
je 0x461988
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 0x461291
cmp word [esi + 2], cx
jne 0x461282
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x43], 2
mov byte [ebp + 0x53], al
jne 0x461294
inc esi
inc esi
mov byte [ebp + 0x43], 3
jmp 0x461294
cmp ax, cx
jne 0x461291
mov al, byte [esi]
mov byte [ebp + 0x53], al
add esi, 2
jmp 0x461294
mov al, byte [ebp - 9]
cmp word [esi], 0x2d
jne 0x46129e
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x461177
push esi
push 0x4c6074
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4612c0
mov byte [ebp + 0x6f], 1
jmp 0x4613d3
push esi
push str.ANSI
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4612d9
mov dword [ebp + 0x4c], edi
jmp 0x4613d3
push esi
push 0x4c6070
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4612f6
mov dword [ebp + 0x4c], 0x3a8
jmp 0x4613d3
push esi
push str.BIG5
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x461313
mov dword [ebp + 0x4c], 0x3b6
jmp 0x4613d3
push esi
push str.UTF8
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x461330
mov dword [ebp + 0x4c], 0xfde9
jmp 0x4613d3
push esi
push str.UTF7
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46134d
mov dword [ebp + 0x4c], 0xfde8
jmp 0x4613d3
push esi
push str.UNICODE
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x461367
mov dword [ebp + 0x58], 0x4b0
jmp 0x4613d3
push esi
push 0x4bddc8
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x46135e
push esi
push str.UNICODEB
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x461392
mov dword [ebp + 0x58], 0x4b1
jmp 0x4613d3
push esi
push str.UNIB
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x461389
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.00443c3d
add esp, 4
test al, al
je 0x4613c1
push esi
call fcn.00444d77
pop ecx
mov dword [ebp + 0x4c], eax
jmp 0x4613d3
cmp cx, di
jne 0x461177
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 0x461404
cmp word [edx + 2], ax
jne 0x4613f2
mov byte [ebp + 0x7b], al
mov cl, al
mov byte [ebp + 0x66], al
lea ebx, [edx + 4]
jmp 0x461407
cmp ax, 0x2a
jne 0x461404
mov al, byte [edx]
mov byte [ebp + 0x7b], al
mov cl, al
lea ebx, [edx + 2]
jmp 0x461407
mov cl, byte [ebp - 0x19]
cmp word [ebx], 0x2d
jne 0x461411
mov cl, byte [ebx]
inc ebx
inc ebx
test cl, cl
je 0x461177
push ebx
push str.ANSI
call fcn.0043f15a
test al, al
pop ecx
pop ecx
mov esi, 0x4c3228
mov edi, 0x4c322c
je 0x46143d
and dword [ebp + 0x18], 0
jmp 0x461552
push ebx
push 0x4c6070
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x46145a
mov dword [ebp + 0x18], 0x3a8
jmp 0x461552
push ebx
push str.BIG5
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x461477
mov dword [ebp + 0x18], 0x3b6
jmp 0x461552
push ebx
push str.UTF8
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4614a2
mov dword [ebp + 0x18], 0xfde9
mov dword [ebp + 0x1c], 0x4c3230
mov dword [ebp + 0x2c], 3
jmp 0x461552
push ebx
push str.UTF7
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4614bf
mov dword [ebp + 0x18], 0xfde8
jmp 0x461552
push ebx
push str.UNICODE
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x4614e3
mov dword [ebp + 0x14], 0x4b0
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x2c], 2
jmp 0x461552
push ebx
push 0x4bddc8
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x4614d0
push ebx
push str.UNICODEB
call fcn.0043f15a
test al, al
pop ecx
pop ecx
jne 0x461516
push ebx
push str.UNIB
call fcn.0043f15a
test al, al
pop ecx
pop ecx
je 0x461522
mov dword [ebp + 0x14], 0x4b1
mov dword [ebp + 0x1c], edi
jmp 0x4614da
xor ecx, ecx
mov cx, word [ebx]
push ecx
call fcn.00443c3d
add esp, 4
test al, al
je 0x461540
push ebx
call fcn.00444d77
pop ecx
mov dword [ebp + 0x18], eax
jmp 0x461552
test cx, cx
jne 0x461177
xor eax, eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp - 8], eax
cmp byte [ebp + 0x67], 0
je 0x46155c
and dword [ebp + 0x1c], 0
xor ebx, ebx
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x44], ebx
call fcn.0044402d
xor edi, edi
cmp byte [ebp + 0x53], 0
mov byte [ebp + 0x65], 0
jne 0x46171c
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.0045708a
push ebx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.00446f11
push dword [ebp + 0x10]
call fcn.00412ce4
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 0x4615e7
lea ecx, [ebp + 0x34]
call fcn.00402c9f
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.00402c9f
jmp 0x46198b
push 2
push ebx
push ebx
push edi
call fcn.0043f027
push 1
push ebx
push ebx
push edi
call fcn.0043f027
push ebx
push ebx
mov esi, eax
push ebx
push edi
mov dword [ebp + 4], esi
call fcn.0043f027
add esp, 0x30
add esi, 0xa
push esi
lea ecx, [ebp + 0x48]
call fcn.0044406f
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 0x461650
lea ecx, [ebp + 0x34]
call fcn.00402c9f
jmp 0x461978
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 0x46166f
cmp dword [ebp + 0x58], 0x4b0
jne 0x461699
push 2
push 0x4c3228
push esi
call fcn.0043ddc8
add esp, 0xc
test eax, eax
jne 0x461693
mov dword [ebp + 0x58], 0x4b0
mov dword [ebp + 0x38], 2
jmp 0x4616f0
cmp byte [ebp + 0x6f], 0
jne 0x4616a2
cmp dword [ebp + 0x58], 0x4b1
jne 0x4616c5
push 2
push 0x4c322c
push esi
call fcn.0043ddc8
add esp, 0xc
test eax, eax
jne 0x4616bf
mov dword [ebp + 0x58], 0x4b1
jmp 0x46168a
cmp byte [ebp + 0x6f], 0
jne 0x4616ce
cmp dword [ebp + 0x4c], 0xfde9
jne 0x461708
push 3
push 0x4c3230
push esi
call fcn.0043ddc8
add esp, 0xc
test eax, eax
jne 0x461708
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.00413f99
add esp, 0xc
sub edi, dword [ebp + 0x38]
jns 0x46170f
xor edi, edi
lea ecx, [ebp + 0x34]
call fcn.00402c9f
jmp 0x4617fb
cmp byte [ebp + 0x43], 0
je 0x4617b7
mov ecx, dword [ebp + 0x30]
xor esi, esi
push esi
lea eax, [ebp + 0x10]
push eax
call fcn.00402ed1
mov ecx, dword [ebp + 0x30]
push esi
push 0xffffffffffffffff
push esi
push dword [ebp + 0x10]
call fcn.004108b2
mov ebx, eax
cmp ebx, esi
je 0x461798
cmp byte [ebp + 0x43], 3
jne 0x461766
push dword [ebx + 4]
lea eax, [ebp + 0x48]
push eax
call fcn.0044894b
pop ecx
pop ecx
mov edi, eax
mov byte [ebp + 0x65], 2
jmp 0x4617a2
mov edi, dword [ebx + 0x10]
lea eax, [edi + 8]
push eax
lea ecx, [ebp + 0x48]
call fcn.0044406f
mov esi, dword [ebp + 0x48]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.004aa0a0
push edi
push dword [ebx + 4]
push esi
call fcn.00413fe3
add esp, 0x18
mov byte [ebp + 0x65], 1
jmp 0x4617a5
push 8
lea ecx, [ebp + 0x48]
call fcn.0044406f
mov esi, dword [ebp + 0x48]
push 8
lea eax, [edi + esi]
push 0
push eax
call fcn.004aa0a0
add esp, 0xc
jmp 0x4617fb
cmp dword [ebp + 0x54], ebx
je 0x4617e4
push 0xffffffffffffffff
push dword [ebp + 0x10]
lea ecx, [ebp + 0x48]
call fcn.004442c5
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.0044406f
jmp 0x4617f4
push dword [ebp + 0x10]
lea eax, [ebp + 0x48]
push eax
call fcn.0044894b
pop ecx
pop ecx
mov edi, eax
mov esi, dword [ebp + 0x48]
mov byte [ebp + 0x65], 2
test edi, edi
jl 0x461978
cmp byte [ebp + 0x6f], 0
je 0x461886
cmp byte [ebp + 0x65], 0
je 0x461886
push 2
push 0x4c3228
push esi
xor ebx, ebx
call fcn.0043ddc8
add esp, 0xc
test eax, eax
push 2
jne 0x461830
mov dword [ebp + 0x58], 0x4b0
jmp 0x46186a
push 0x4c322c
push esi
call fcn.0043ddc8
add esp, 0xc
test eax, eax
jne 0x46184d
mov dword [ebp + 0x58], 0x4b1
push 2
jmp 0x46186a
push 3
push 0x4c3230
push esi
call fcn.0043ddc8
add esp, 0xc
test eax, eax
jne 0x461880
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.00413f99
add esp, 0xc
sub edi, ebx
jns 0x461886
xor edi, edi
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x38], esi
mov dword [ebp + 4], esi
call fcn.004441a1
mov ebx, dword [ebp + 0x18]
cmp ebx, dword [ebp + 0x4c]
jne 0x461924
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x58]
jne 0x461924
cmp byte [ebp + 0x66], 0
je 0x4618c6
push 0
lea eax, [ebp + 0x3c]
push eax
push edi
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x30]
call fcn.0045078d
add esp, 0x18
jmp 0x461908
cmp byte [ebp + 0x7b], 0
jne 0x4618d8
push edi
push esi
lea ecx, [ebp + 0x44]
call fcn.0043db8c
jmp 0x461908
cmp dword [ebp - 8], 0
jne 0x4618f1
push edi
lea eax, [ebp + 0x68]
push esi
push eax
call fcn.004488c4
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x4618fd
cmp dword [ebp + 0x54], 0
je 0x4618fc
push dword [ebp + 0x10]
jmp 0x4618fd
push esi
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x30]
call fcn.004438ac
lea ecx, [ebp + 0x68]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.00402c9f
xor esi, esi
jmp 0x46198b
cmp dword [ebp + 0x58], 0x4b1
jne 0x461940
push edi
push esi
mov dword [ebp + 0x58], 0x4b0
call fcn.004421e7
pop ecx
pop ecx
and edi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x4619bf
push dword [ebp + 0x3c]
call fcn.00412ce4
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 0x4619bf
lea ecx, [ebp + 0x68]
call fcn.0043dd41
lea ecx, [ebp + 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.00402c9f
xor esi, esi
inc esi
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp - 0x24]
call fcn.0043dd41
lea ecx, [ebp + 0x10]
call fcn.0043dd41
lea ecx, [ebp + 0x28]
call fcn.0043dd41
lea ecx, [ebp - 0x50]
call fcn.0043dd41
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 0x4619d6
cmp dword [ebp + 0x4c], ebx
je 0x4619e0
cmp dword [ebp + 0x4c], eax
jne 0x461a4e
cmp dword [ebp + 0x18], ebx
jne 0x461a4e
cmp byte [ebp + 0x42], 0
je 0x4619ea
mov byte [ebp + 0x42], 3
lea ecx, [ebp + 0x34]
call fcn.0044402d
xor eax, eax
cmp dword [ebp + 0x18], ebx
sete al
push eax
lea eax, [ebp + 0x34]
push eax
push esi
call fcn.004489d8
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 0x461a46
cmp byte [ebp + 0x7b], 0
jne 0x461a46
test edi, edi
jle 0x461a39
push edi
push esi
lea ecx, [ebp + 0x44]
call fcn.0043db8c
lea ecx, [ebp + 0x34]
call fcn.0043dd41
jmp 0x461be6
lea ecx, [ebp + 0x34]
call fcn.0043dd41
mov ebx, edi
shr ebx, 1
cmp dword [ebp + 0x58], 0
jne 0x461a91
lea ebx, [edi + 0xa]
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.004441e6
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 0x461a80
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 0x461aa5
push edi
push dword [ebp + 0x38]
call fcn.004421e7
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x14], eax
jle 0x461b36
cmp byte [ebp + 0x66], al
je 0x461ad3
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.0045078d
add esp, 0x18
jmp 0x461bf6
cmp byte [ebp + 0x7b], 0
jne 0x461afe
cmp edi, eax
jle 0x461be6
cmp dword [ebp + 0x1c], 0
je 0x461af5
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x1c]
call fcn.0043db8c
push edi
push dword [ebp + 0x38]
jmp 0x461b9b
cmp dword [ebp - 8], eax
jne 0x461b3b
lea ecx, [ebp + 0x78]
call fcn.004441a1
push ebx
push dword [ebp + 0x38]
lea eax, [ebp + 0x78]
push eax
call fcn.00448925
mov ecx, dword [ebp + 0x30]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x3c]
call fcn.004438ac
lea ecx, [ebp + 0x78]
call fcn.0043dd41
jmp 0x461be6
cmp dword [ebp - 8], eax
je 0x461b43
push dword [ebp + 4]
jmp 0x461bdb
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.0044406f
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 0x461b77
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [ebx + esi], 0
jne 0x461ba5
test esi, esi
jle 0x461be6
cmp dword [ebp + 0x1c], 0
je 0x461b99
push dword [ebp + 0x2c]
lea ecx, [ebp + 0x44]
push dword [ebp + 0x1c]
call fcn.0043db8c
push esi
push ebx
lea ecx, [ebp + 0x44]
call fcn.0043db8c
jmp 0x461be6
cmp byte [ebp + 0x66], 0
je 0x461bca
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.0045078d
add esp, 0x18
jmp 0x461be6
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.004488c4
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x30]
call fcn.004438ac
xor esi, esi
cmp dword [ebp + 0x44], esi
je 0x461bf6
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x54]
call fcn.0043dd41
lea ecx, [ebp + 0x68]
call fcn.0043dd41
jmp 0x4615d2