Function at 0x4619c1
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xd4
push ebx
push esi
push edi
mov dword [ebp + 0x28], ecx
push ecx
lea ecx, [ebp - 0x54]
call fcn.00447166
lea eax, [ebp + 0x78]
push eax
call fcn.0043e611
pop ecx
lea ecx, [ebp + 0x20]
call fcn.00444e32
lea ecx, [ebp + 0xc]
call fcn.00444e32
lea ecx, [ebp - 0x2c]
call fcn.00444e32
lea ecx, [ebp + 0x38]
call fcn.00444e32
mov eax, dword [ebp + 0x78]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.004589f9
push 0
lea ecx, [ebp + 0x20]
push ecx
push eax
call fcn.00447c46
mov esi, dword [ebp + 0x20]
xor eax, eax
mov ax, word [esi]
add esp, 0xc
xor ebx, ebx
test ax, ax
mov byte [ebp + 0x3f], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x65], 0
mov ecx, esi
je 0x461a68
call fcn.0040f8eb
test al, al
je 0x461a52
mov ebx, ecx
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
jne 0x461a47
test ebx, ebx
je 0x461a68
and word [ebx], ax
mov esi, dword [ebp + 0x20]
inc ebx
inc ebx
test ebx, ebx
mov eax, esi
mov dword [ebp + 0x78], eax
je 0x461aeb
cmp word [esi], 0x2a
jne 0x461aeb
cmp word [eax + 2], 0x2d
je 0x461aeb
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4ca318
call fcn.00446de5
add esp, 0xc
test al, al
je 0x461a9b
mov byte [ebp + 0x67], 1
jmp 0x461adf
push 0xa
lea eax, [ebp + 0x78]
push eax
push str.transonly
call fcn.00446de5
add esp, 0xc
test al, al
je 0x461ab8
mov byte [ebp + 0x3f], 1
jmp 0x461adf
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ca308
call fcn.00446de5
add esp, 0xc
test al, al
je 0x461ad5
mov byte [ebp + 0x65], 1
jmp 0x461adf
lea eax, [ebp + 0x78]
push eax
call fcn.00405b6e
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
mov esi, dword [ebp + 0x20]
je 0x461a77
xor edi, edi
cmp ebx, edi
mov byte [ebp + 0x53], 0
mov byte [ebp - 0x11], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp + 0x7b], 0
mov byte [ebp - 0x1d], 0
mov byte [ebp + 0x66], 0
je 0x461b29
push ebx
lea ecx, [ebp + 0x54]
call fcn.0044e66d
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x54], ecx
lea ecx, [ebp + 0x54]
mov dword [ebp + 0x20], eax
call fcn.0043e679
mov esi, dword [ebp + 0x20]
cmp byte [ebp + 0x65], 0
je 0x46258c
mov ecx, dword [ebp + 0x28]
push edi
lea eax, [ebp + 0x20]
push eax
call fcn.00402ecb
mov ecx, dword [ebp + 0x28]
xor esi, esi
inc esi
push esi
push edi
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x68]
call fcn.00456647
mov eax, dword [ebp + 0x38]
cmp word [eax], 0x2c
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x10], edi
jne 0x461b72
add eax, 2
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x68]
push eax
call fcn.0043e611
pop ecx
mov ecx, dword [ebp + 0x68]
xor ebx, ebx
mov bx, word [ecx]
cmp bx, di
mov dword [ebp + 0x60], ebx
je 0x462582
cmp bx, 0x2b
mov edx, 0x3a0
jne 0x461baf
lea eax, [ecx + 2]
cmp word [eax], bx
jne 0x461bdf
mov ebx, 0x3a3
mov ecx, eax
mov dword [ebp + 0x60], ebx
jmp 0x461bdf
cmp bx, 0x2a
jne 0x461bc4
lea eax, [ecx + 2]
cmp word [eax], bx
jne 0x461bdf
mov ebx, edx
mov ecx, eax
mov dword [ebp + 0x60], ebx
cmp bx, dx
jne 0x461bd1
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], edi
jmp 0x461bdf
cmp bx, 0x3f
jne 0x461bdf
or dword [ebp + 0x58], 0xffffffff
or dword [ebp + 0x5c], 0xffffffff
inc ecx
lea eax, [ebp + 0x68]
inc ecx
push eax
mov dword [ebp + 0x68], ecx
call fcn.0043e611
cmp bx, 0x3a9
mov esi, dword [ebp + 0x68]
pop ecx
jne 0x461c01
mov dword [ebp + 0x78], 0x3f
jmp 0x461c16
cmp bx, 0x3a3
mov dword [ebp + 0x78], ebx
je 0x461c16
cmp bx, dx
je 0x461c16
cmp bx, 0x3f
jne 0x461c7a
cmp word [esi], 0x2c
je 0x461c80
push 0x2c
lea eax, [ebp + 0x68]
mov dword [ebp + 0x1c], esi
call fcn.00405b85
mov eax, dword [ebp + 0x68]
cmp word [eax], di
pop ecx
je 0x461c3a
mov word [eax], di
inc eax
inc eax
mov dword [ebp + 0x68], eax
cmp word [ebp + 0x78], 0x3f
jne 0x461c85
jmp 0x461c54
mov ax, word [esi]
cmp ax, 0x2b
je 0x461c5b
cmp ax, 0x2d
je 0x461c63
inc esi
inc esi
cmp word [esi], di
jne 0x461c43
jmp 0x461c85
lea eax, [esi + 2]
mov dword [ebp + 0x54], eax
jmp 0x461c66
mov dword [ebp + 0x54], esi
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.004481e9
pop ecx
pop ecx
mov word [esi], di
jmp 0x461c85
cmp word [esi], 0x2c
jne 0x461c85
inc esi
inc esi
mov dword [ebp + 0x68], esi
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
or dword [ebp + 8], 0xffffffff
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x68]
push eax
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edi
mov dword [ebp + 4], 0xfffe0000
mov dword [ebp + 0x44], 1
call fcn.00405bc5
test eax, eax
pop ecx
pop ecx
jle 0x462582
cmp bx, 0x2d
jne 0x461ce0
mov ebx, dword [ebp + 0x18]
mov dword [ebp + 0x60], 0x2b
jmp 0x461cf0
cmp bx, 0x3c
mov ebx, dword [ebp + 0x18]
jne 0x461cff
mov dword [ebp + 0x60], 0x3e
mov eax, dword [ebp + 0x14]
neg eax
adc ebx, edi
neg ebx
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], ebx
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405ba5
test eax, eax
pop ecx
pop ecx
jle 0x462582
cmp dword [ebp + 0x44], edi
jle 0x462582
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bc5
cmp dword [ebp - 0x30], edi
pop ecx
pop ecx
jl 0x462582
jg 0x461d42
cmp dword [ebp - 0x34], edi
jb 0x462582
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bc5
pop ecx
pop ecx
mov edi, 0x4dcd58
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x28]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x20]
call fcn.00410d4d
mov esi, eax
test esi, esi
je 0x46257b
mov ecx, dword [esi + 0x10]
mov eax, ecx
cdq
cmp dword [ebp - 0x30], edx
mov dword [ebp], ecx
mov dword [ebp - 0x38], edx
jg 0x46257b
jl 0x461d98
cmp dword [ebp - 0x34], eax
jae 0x46257b
test ecx, ecx
jle 0x46257b
cmp dword [ebp - 8], 0
jg 0x461db4
jl 0x461dae
cmp dword [ebp - 0xc], 0
ja 0x461db4
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov edi, dword [ebp - 0x34]
mov esi, dword [esi + 4]
sub ecx, edi
mov eax, ecx
cdq
cmp dword [ebp - 8], edx
mov dword [ebp + 0x34], esi
jl 0x461dd4
jg 0x461dce
cmp dword [ebp - 0xc], eax
jbe 0x461dd4
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov dword [ebp + 0x24], ecx
jle 0x461de1
mov dword [ebp + 0x24], eax
cmp dword [ebp + 0x24], 0
jle 0x461f0f
mov ecx, dword [ebp + 0x60]
mov eax, ecx
or eax, 0x20
add esi, edi
cmp ax, 0x68
push 0x6f
pop edx
je 0x461e09
cmp ax, 0x6e
je 0x461e09
cmp ax, dx
jne 0x461e0e
mov ecx, edx
mov dword [ebp + 0x60], ecx
cmp cx, 0x3a9
jne 0x461e7b
mov byte [ebp + 0x6f], 9
cmp cx, dx
mov dword [ebp + 0x54], edi
jne 0x461e35
mov eax, edi
cdq
cmp edx, ebx
jl 0x461e35
jg 0x461e2f
cmp eax, dword [ebp + 0x14]
jbe 0x461e35
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x54], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bc5
xor eax, eax
cmp dword [ebp - 0x1c], eax
pop ecx
pop ecx
jne 0x461e5c
cmp dword [ebp - 0x18], eax
jne 0x461e5f
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], eax
jl 0x461f19
jg 0x461e70
cmp dword [ebp - 0x1c], eax
jbe 0x461f19
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
jmp 0x461f26
cmp cx, 0x3f
jne 0x461e87
mov byte [ebp + 0x6f], 8
jmp 0x461e19
cmp cx, 0x7c
jne 0x461e93
mov byte [ebp + 0x6f], 7
jmp 0x461e19
cmp cx, 0x26
jne 0x461ea2
mov byte [ebp + 0x6f], 6
jmp 0x461e19
cmp cx, 0x3a0
jne 0x461eb2
mov byte [ebp + 0x6f], 5
jmp 0x461e19
cmp cx, 0x3a3
jne 0x461ec2
mov byte [ebp + 0x6f], 4
jmp 0x461e19
cmp cx, 0x2e
jne 0x461ed1
mov byte [ebp + 0x6f], 3
jmp 0x461e19
cmp cx, 0x3e
jne 0x461ee0
mov byte [ebp + 0x6f], 2
jmp 0x461e19
cmp cx, 0x5e
sete byte [ebp + 0x6f]
cmp byte [ebp + 0x6f], 0
jne 0x461e19
cmp cx, 0x2b
je 0x461e19
cmp cx, 0x23
je 0x461e19
cmp cx, dx
je 0x461e19
push 0x4dcd58
jmp 0x46257c
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
neg edi
adc ebx, 0
neg ebx
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bc5
cmp dword [ebp + 8], 0
pop ecx
pop ecx
jg 0x461f82
jl 0x461f43
cmp dword [ebp + 4], 0
ja 0x461f82
cmp dword [ebp + 4], 0xfffe0000
jne 0x461f52
cmp dword [ebp + 8], 0xffffffff
je 0x461f69
mov eax, dword [ebp]
sub eax, dword [ebp + 0x54]
push ebx
cdq
push edi
push edx
push eax
call fcn.004adb00
cdq
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
cmp dword [ebp + 8], 0
jg 0x461f82
jl 0x461f77
cmp dword [ebp + 4], 0
ja 0x461f82
and dword [ebp + 8], 0
mov dword [ebp + 4], 1
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.00405bc5
xor edi, edi
cmp dword [ebp - 0x44], edi
pop ecx
pop ecx
jne 0x461fa9
cmp dword [ebp - 0x40], edi
jne 0x461fa9
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x44]
and eax, 3
sub ecx, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp + 0x34]
sar ebx, 8
add eax, ecx
cmp ebx, edi
mov dword [ebp], esi
mov dword [ebp + 0x2c], eax
mov dword [ebp - 0x10], ebx
jg 0x461fdb
xor ebx, ebx
inc ebx
mov dword [ebp - 0x10], ebx
movzx ecx, byte [ebp + 0x44]
mov eax, dword [ebp + 0x24]
cdq
idiv ecx
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x5c], edx
mov eax, ecx
cdq
idiv ebx
lea edx, [eax - 1]
imul edx, ebx
mov dword [ebp + 0x4c], edx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
imul edx, ebx
mov dword [ebp + 0x40], eax
mov eax, ecx
sub eax, edx
cmp ecx, 8
mov dword [ebp + 0x68], eax
jl 0x46201b
mov byte [ebp + 0x66], 3
jmp 0x46202d
cmp ecx, 4
jl 0x462026
mov byte [ebp + 0x66], 2
jmp 0x46202d
cmp ecx, 2
setge byte [ebp + 0x66]
mov eax, dword [ebp + 0x60]
cmp ax, 0x3e
je 0x462053
cmp ax, 0x2e
je 0x462053
cmp ax, 0x26
je 0x462053
cmp ax, 0x7c
je 0x462053
cmp word [ebp + 0x78], 0x3f
mov byte [ebp + 0x53], 1
jne 0x462057
mov byte [ebp + 0x53], 0
add dword [ebp + 4], 0xffffffff
adc dword [ebp + 8], 0xffffffff
js 0x4623ef
jg 0x462070
cmp dword [ebp + 4], edi
jb 0x4623ef
cmp word [ebp + 0x60], 0x23
jne 0x4620ca
mov edi, dword [ebp + 0x2c]
mov eax, dword [ebp - 0x58]
lea ecx, [edi + eax]
jmp 0x462090
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 0x462082
cmp dword [ebp - 4], 0
jle 0x462545
push dword [ebp - 4]
lea eax, [ebp - 0x60]
push esi
push eax
call fcn.00414409
push dword [ebp - 4]
push edi
push esi
call fcn.00414409
push dword [ebp - 4]
lea eax, [ebp - 0x60]
push eax
push edi
call fcn.00414409
add esp, 0x24
jmp 0x462545
cmp word [ebp + 0x60], 0x6f
jne 0x462167
cmp ebx, 1
mov eax, dword [ebp + 0x30]
jg 0x462117
dec eax
js 0x462545
mov edi, dword [ebp + 0x40]
dec edi
inc eax
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x4c]
add eax, esi
test edi, edi
jl 0x46210a
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 0x4620fb
add esi, dword [ebp + 0x68]
dec dword [ebp + 0x54]
jne 0x4620ec
jmp 0x462545
dec eax
js 0x462545
mov edi, dword [ebp + 0x40]
dec edi
inc eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x4c]
add eax, esi
test edi, edi
jl 0x46215a
lea ecx, [edi + 1]
mov dword [ebp + 0x54], ecx
lea ecx, [ebx - 1]
test ecx, ecx
jl 0x462150
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 0x462141
lea ecx, [ebx + ebx]
sub eax, ecx
dec dword [ebp + 0x54]
jne 0x462135
add esi, dword [ebp + 0x68]
dec dword [ebp - 0x28]
jne 0x462126
jmp 0x462545
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov dword [ebp + 0x54], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
movzx eax, byte [ebp + 0x66]
mov edi, esi
sub edi, edx
add edi, dword [ebp + 0x24]
mov byte [ebp + 0x7b], cl
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
dec eax
mov dword [ebp - 0x48], edi
je 0x46243b
dec eax
je 0x462350
dec eax
je 0x46224c
and byte [ebp + 0x7b], 7
mov bl, 8
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x46223f
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x4621c4
jmp dword [eax*4 + 0x463065]
add byte [esi], cl
jmp case.default.0x4621c4
cmp word [ebp + 0x60], 0x5e
jne case.default.0x4621c4
xor byte [esi], cl
jmp case.default.0x4621c4
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 0x462217
mov byte [esi], cl
jmp case.default.0x4621c4
movsx eax, byte [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
jmp case.default.0x4621c4
push dword [ebp + 0x5c]
movsx eax, byte [esi]
push dword [ebp + 0x58]
cdq
push edx
push eax
call fcn.004adbb0
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov ecx, dword [ebp + 0x14]
jmp case.default.0x4621c4
and byte [esi], cl
jmp case.default.0x4621c4
or byte [esi], cl
jmp case.default.0x4621c4
test byte [esi], cl
je case.default.0x4621c4
mov eax, esi
sub eax, dword [ebp + 0x34]
jmp 0x4623e5
test byte [esi], cl
je case.default.0x4621c4
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
inc esi
cmp esi, edi
jb 0x4621bb
jmp 0x4624f3
and byte [ebp + 0x7b], 0x3f
mov bl, 0x40
sub bl, byte [ebp + 0x7b]
cmp esi, edi
mov byte [ebp + 0x67], bl
jae 0x4624f3
movzx eax, byte [ebp + 0x6f]
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp eax, 9
ja case.default.0x462279
jmp dword [eax*4 + 0x46308d]
add dword [esi], edx
adc dword [esi + 4], edi
jmp case.default.0x462279
cmp word [ebp + 0x60], 0x5e
jne case.default.0x462279
xor dword [esi], edx
xor dword [esi + 4], edi
jmp case.default.0x462279
mov edi, dword [esi]
mov edx, dword [esi + 4]
movzx ecx, bl
mov eax, edi
call fcn.004afca0
movzx ecx, byte [ebp + 0x14]
mov ebx, eax
mov eax, edx
mov edx, dword [esi + 4]
mov dword [ebp - 8], eax
mov eax, edi
call fcn.004afcc0
mov edi, dword [ebp + 0x18]
or ebx, eax
mov eax, dword [ebp - 8]
or eax, edx
mov dword [esi], ebx
mov bl, byte [ebp + 0x67]
mov dword [esi + 4], eax
jmp 0x462301
mov dword [esi], edx
mov dword [esi + 4], edi
jmp case.default.0x462279
mov eax, dword [esi]
add dword [ebp + 0x58], eax
mov eax, dword [esi + 4]
adc dword [ebp + 0x5c], eax
jmp case.default.0x462279
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push dword [esi + 4]
push dword [esi]
call fcn.004adbb0
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov edx, dword [ebp + 0x14]
jmp case.default.0x462279
and dword [esi], edx
and dword [esi + 4], edi
jmp case.default.0x462279
or dword [esi], edx
or dword [esi + 4], edi
jmp case.default.0x462279
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
jne 0x4623dc
mov edi, dword [ebp + 0x18]
jmp case.default.0x462279
mov eax, dword [esi]
mov ecx, dword [esi + 4]
and eax, edx
and ecx, edi
or eax, ecx
je case.default.0x462279
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
add esi, dword [ebp + 0x44]
cmp esi, dword [ebp - 0x48]
jb 0x46226d
jmp 0x4624f3
and byte [ebp + 0x7b], 0x1f
mov bl, 0x20
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x46242e
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x46236e
jmp dword [eax*4 + 0x4630b5]
add dword [esi], ecx
jmp case.default.0x46236e
cmp word [ebp + 0x60], 0x5e
jne case.default.0x46236e
xor dword [esi], ecx
jmp case.default.0x46236e
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 0x4623cb
mov dword [esi], ecx
jmp case.default.0x46236e
mov eax, dword [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
jmp case.default.0x46236e
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push 0
push dword [esi]
call fcn.004adbb0
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov ecx, dword [ebp + 0x14]
jmp case.default.0x46236e
and dword [esi], ecx
jmp case.default.0x46236e
or dword [esi], ecx
jmp case.default.0x46236e
test dword [esi], ecx
je case.default.0x46236e
mov eax, esi
sub eax, dword [ebp + 0x34]
cdq
idiv dword [ebp + 0x44]
add eax, dword [ebp + 0x10]
cdq
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
xor esi, esi
cmp dword [ebp + 0x1c], esi
je 0x46240f
push str._I64d
push dword [ebp + 0x1c]
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
push dword [ebp + 0x28]
call fcn.00447418
add esp, 0x14
push 0x4dcd58
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x462dbb
test dword [esi], ecx
je case.default.0x46236e
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
add esi, dword [ebp + 0x44]
cmp esi, edi
jb 0x462361
jmp 0x4624f3
and byte [ebp + 0x7b], 0xf
mov bl, 0x10
sub bl, byte [ebp + 0x7b]
mov byte [ebp + 0x67], bl
jmp 0x4624eb
movzx eax, byte [ebp + 0x6f]
cmp eax, 9
ja case.default.0x462459
jmp dword [eax*4 + 0x4630dd]
add word [esi], cx
jmp case.default.0x462459
cmp word [ebp + 0x60], 0x5e
jne case.default.0x462459
xor word [esi], cx
jmp case.default.0x462459
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 0x4624b7
mov word [esi], cx
jmp case.default.0x462459
movsx eax, word [esi]
mov bl, byte [ebp + 0x67]
cdq
add dword [ebp + 0x58], eax
adc dword [ebp + 0x5c], edx
jmp case.default.0x462459
push dword [ebp + 0x5c]
movsx eax, word [esi]
push dword [ebp + 0x58]
cdq
push edx
push eax
call fcn.004adbb0
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
mov ecx, dword [ebp + 0x14]
jmp case.default.0x462459
and word [esi], cx
jmp case.default.0x462459
or word [esi], cx
jmp case.default.0x462459
movzx eax, word [esi]
movsx edx, cx
test edx, eax
jne 0x4623dc
jmp case.default.0x462459
movzx eax, word [esi]
movsx edx, cx
test edx, eax
je case.default.0x462459
add dword [ebp + 0x58], 1
adc dword [ebp + 0x5c], 0
add esi, dword [ebp + 0x44]
cmp esi, edi
jb 0x46244c
mov edi, dword [ebp - 0x28]
test edi, edi
jle 0x46252a
cmp byte [ebp + 0x53], 0
je 0x46252a
push edi
lea eax, [ebp - 0x3c]
push esi
push eax
call fcn.00414409
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0x54], edi
mov edi, dword [ebp + 0x44]
add esp, 0xc
and dword [ebp - 0x28], 0
mov dword [ebp - 0x24], esi
lea esi, [ebp - 0x3c]
lea edi, [ebp + edi - 0x3c]
jmp 0x46218f
cmp dword [ebp + 0x54], 0
je 0x462542
push dword [ebp + 0x54]
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x24]
call fcn.00414409
add esp, 0xc
mov ebx, dword [ebp - 0x10]
mov esi, dword [ebp]
add esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x1c]
add dword [ebp + 0x2c], eax
add dword [ebp + 4], 0xffffffff
mov dword [ebp], esi
adc dword [ebp + 8], 0xffffffff
cmp dword [ebp + 8], 0
jg 0x462070
jl 0x4623ef
cmp dword [ebp + 4], 0
jae 0x462070
jmp 0x4623ef
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x462dbb
mov ecx, dword [ebp + 0x68]
push 0x2c
pop ebx
cmp word [ecx], bx
lea eax, [ecx + 2]
mov dword [ebp - 8], eax
jne 0x4625c0
push 1
mov dword [ebp + 0x68], eax
push ebx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.004589f9
push edi
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.00447d02
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
jne 0x4625ec
add dword [ebp + 0x68], 2
push 1
push ebx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.004589f9
push edi
lea ecx, [ebp - 0x2c]
push ecx
push eax
call fcn.00447c46
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x68]
cmp word [eax], bx
jne 0x462618
add dword [ebp + 0x68], 2
push 1
push ebx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
call fcn.004589f9
push edi
lea ecx, [ebp + 0x38]
push ecx
push eax
call fcn.00447c46
mov esi, dword [ebp + 0x20]
add esp, 0xc
mov ax, word [esi]
cmp ax, di
je 0x462db8
mov ecx, dword [ebp + 0xc]
cmp word [ecx], di
je 0x462db8
mov ecx, dword [ebp - 0x2c]
cmp word [ecx], di
je 0x462db8
mov edx, dword [ebp + 0x38]
cmp word [edx], di
je 0x462db8
xor ebx, ebx
push 0x2a
mov edi, ecx
pop ecx
cmp ax, cx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x1c], ebx
mov byte [ebp + 0x4b], bl
jne 0x46269b
cmp word [esi + 2], cx
jne 0x46268c
add esi, 4
cmp word [esi], cx
mov byte [ebp + 0x6f], 2
mov byte [ebp + 0x53], al
jne 0x46269e
inc esi
inc esi
mov byte [ebp + 0x6f], 3
jmp 0x46269e
cmp ax, cx
jne 0x46269b
mov al, byte [esi]
mov byte [ebp + 0x53], al
add esi, 2
jmp 0x46269e
mov al, byte [ebp - 0x11]
cmp word [esi], 0x2d
jne 0x4626a8
mov al, byte [esi]
inc esi
inc esi
test al, al
je 0x462582
push esi
push 0x4ca304
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x4626ca
mov byte [ebp + 0x4b], 1
jmp 0x4627dd
push esi
push str.ANSI
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x4626e3
mov dword [ebp + 0x30], ebx
jmp 0x4627dd
push esi
push 0x4ca300
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x462700
mov dword [ebp + 0x30], 0x3a8
jmp 0x4627dd
push esi
push str.BIG5
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x46271d
mov dword [ebp + 0x30], 0x3b6
jmp 0x4627dd
push esi
push str.UTF8
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x46273a
mov dword [ebp + 0x30], 0xfde9
jmp 0x4627dd
push esi
push str.UTF7
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x462757
mov dword [ebp + 0x30], 0xfde8
jmp 0x4627dd
push esi
push str.UNICODE
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x462771
mov dword [ebp + 0x60], 0x4b0
jmp 0x4627dd
push esi
push 0x4c1e68
call fcn.0043fb03
test al, al
pop ecx
pop ecx
jne 0x462768
push esi
push str.UNICODEB
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x46279c
mov dword [ebp + 0x60], 0x4b1
jmp 0x4627dd
push esi
push str.UNIB
call fcn.0043fb03
test al, al
pop ecx
pop ecx
jne 0x462793
xor ecx, ecx
mov cx, word [esi]
push ecx
call fcn.004ab8fe
add esp, 4
test al, al
je 0x4627cb
push esi
call fcn.00445a72
pop ecx
mov dword [ebp + 0x30], eax
jmp 0x4627dd
cmp cx, bx
jne 0x462582
xor eax, eax
inc eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x54], eax
mov ecx, dword [ebp - 0x2c]
mov ax, word [ecx]
cmp ax, 0x2a
jne 0x46280a
cmp word [ecx + 2], ax
jne 0x4627fa
mov byte [ebp + 0x7b], al
mov byte [ebp + 0x66], al
lea edi, [ecx + 4]
jmp 0x46280d
cmp ax, 0x2a
jne 0x46280a
mov al, byte [ecx]
mov byte [ebp + 0x7b], al
lea edi, [ecx + 2]
jmp 0x46280d
mov al, byte [ebp - 0x1d]
cmp word [edi], 0x2d
jne 0x462817
mov al, byte [edi]
inc edi
inc edi
test al, al
je 0x462582
push edi
push str.ANSI
call fcn.0043fb03
test al, al
pop ecx
pop ecx
mov esi, 0x4c7378
mov ebx, 0x4c737c
je 0x462843
and dword [ebp + 0x44], 0
jmp 0x462958
push edi
push 0x4ca300
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x462860
mov dword [ebp + 0x44], 0x3a8
jmp 0x462958
push edi
push str.BIG5
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x46287d
mov dword [ebp + 0x44], 0x3b6
jmp 0x462958
push edi
push str.UTF8
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x4628a8
mov dword [ebp + 0x44], 0xfde9
mov dword [ebp + 0x1c], 0x4c7380
mov dword [ebp + 0x24], 3
jmp 0x462958
push edi
push str.UTF7
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x4628c5
mov dword [ebp + 0x44], 0xfde8
jmp 0x462958
push edi
push str.UNICODE
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x4628e9
mov dword [ebp + 0x10], 0x4b0
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x24], 2
jmp 0x462958
push edi
push 0x4c1e68
call fcn.0043fb03
test al, al
pop ecx
pop ecx
jne 0x4628d6
push edi
push str.UNICODEB
call fcn.0043fb03
test al, al
pop ecx
pop ecx
jne 0x46291c
push edi
push str.UNIB
call fcn.0043fb03
test al, al
pop ecx
pop ecx
je 0x462928
mov dword [ebp + 0x10], 0x4b1
mov dword [ebp + 0x1c], ebx
jmp 0x4628e0
xor ecx, ecx
mov cx, word [edi]
push ecx
call fcn.004ab8fe
add esp, 4
test al, al
je 0x462946
push edi
call fcn.00445a72
pop ecx
mov dword [ebp + 0x44], eax
jmp 0x462958
test cx, cx
jne 0x462582
xor eax, eax
inc eax
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x10], eax
cmp byte [ebp + 0x67], 0
je 0x462962
and dword [ebp + 0x1c], 0
xor edi, edi
lea ecx, [ebp + 0x4c]
mov dword [ebp + 0x40], edi
call fcn.00444cbe
xor esi, esi
cmp byte [ebp + 0x53], 0
mov byte [ebp + 0x65], 0
jne 0x462aff
mov eax, dword [ebp - 8]
push 1
mov dword [ebp + 0x68], eax
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x54]
mov dword [ebp + 0x2c], edi
call fcn.004589f9
push edi
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.00447c46
push dword [ebp + 0xc]
call fcn.0041310a
add esp, 0x10
push edi
push 0x80
push 3
push edi
push 7
push 0x80000000
push eax
lea ecx, [ebp + 0x2c]
call fcn.00405bea
mov esi, dword [ebp + 0x2c]
cmp esi, edi
jne 0x4629db
lea ecx, [ebp + 0x2c]
call fcn.00402cb0
jmp 0x462da8
push 2
xor edi, edi
push edi
push edi
push esi
call fcn.0043f9d0
push 1
push edi
push edi
push esi
call fcn.0043f9d0
push edi
push edi
push edi
push esi
mov ebx, eax
call fcn.0043f9d0
add esp, 0x30
lea eax, [ebx + 0xa]
push eax
lea ecx, [ebp + 0x4c]
call fcn.00444d00
mov edi, dword [ebp + 0x4c]
push 0
lea eax, [ebp]
push eax
push ebx
mov byte [edi + 2], 0
mov byte [edi + 1], 0
push edi
mov byte [edi], 0
or dword [ebp], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp]
test eax, eax
mov esi, eax
jl 0x4629ce
and dword [ebp + 0x34], 0
add eax, edi
cmp byte [ebp + 0x4b], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
jne 0x462a55
cmp dword [ebp + 0x60], 0x4b0
jne 0x462a7f
push 2
push 0x4c7378
push edi
call fcn.0043e718
add esp, 0xc
test eax, eax
jne 0x462a79
mov dword [ebp + 0x60], 0x4b0
mov dword [ebp + 0x34], 2
jmp 0x462ad6
cmp byte [ebp + 0x4b], 0
jne 0x462a88
cmp dword [ebp + 0x60], 0x4b1
jne 0x462aab
push 2
push 0x4c737c
push edi
call fcn.0043e718
add esp, 0xc
test eax, eax
jne 0x462aa5
mov dword [ebp + 0x60], 0x4b1
jmp 0x462a70
cmp byte [ebp + 0x4b], 0
jne 0x462ab4
cmp dword [ebp + 0x30], 0xfde9
jne 0x462aeb
push 3
push 0x4c7380
push edi
call fcn.0043e718
add esp, 0xc
test eax, eax
jne 0x462aeb
mov dword [ebp + 0x30], 0xfde9
mov dword [ebp + 0x34], 3
mov eax, dword [ebp + 0x34]
sub ebx, eax
add ebx, 3
push ebx
add eax, edi
push eax
push edi
call fcn.004143bf
add esp, 0xc
sub esi, dword [ebp + 0x34]
jns 0x462af2
xor esi, esi
lea ecx, [ebp + 0x2c]
call fcn.00402cb0
jmp 0x462c29
cmp byte [ebp + 0x6f], 0
je 0x462be5
mov ecx, dword [ebp + 0x28]
push edi
lea eax, [ebp + 0xc]
push eax
call fcn.00402ecb
mov ebx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [ebx]
push eax
call fcn.004ab8fe
add esp, 4
test al, al
je 0x462b62
lea eax, [ebp - 8]
push eax
lea eax, [ebp]
push eax
mov dword [ebp], ebx
call fcn.004481e9
test eax, eax
pop ecx
pop ecx
je 0x462b62
mov eax, dword [ebp]
cmp word [eax], di
jne 0x462b62
cmp byte [ebp + 0x6f], 3
mov ebx, dword [ebp - 8]
mov eax, ebx
je 0x462b80
mov edi, dword [ebp + 0x4c]
mov dword [ebp - 4], ebx
or esi, 0xffffffff
jmp 0x462c36
mov ecx, dword [ebp + 0x28]
push 0
push 0xffffffffffffffff
push 0
push ebx
call fcn.00410d4d
mov ebx, eax
test ebx, ebx
je 0x462bc6
cmp byte [ebp + 0x6f], 3
mov eax, dword [ebx + 4]
jne 0x462b94
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.004496a5
pop ecx
pop ecx
mov esi, eax
mov byte [ebp + 0x65], 2
jmp 0x462bd0
mov esi, dword [ebx + 0x10]
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x4c]
call fcn.00444d00
mov edi, dword [ebp + 0x4c]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.004adaa0
push esi
push dword [ebx + 4]
push edi
call fcn.00414409
add esp, 0x18
mov byte [ebp + 0x65], 1
jmp 0x462bd3
push 8
lea ecx, [ebp + 0x4c]
call fcn.00444d00
mov edi, dword [ebp + 0x4c]
push 8
lea eax, [esi + edi]
push 0
push eax
call fcn.004adaa0
add esp, 0xc
jmp 0x462c29
cmp dword [ebp + 0x54], edi
je 0x462c12
push 0xffffffffffffffff
push dword [ebp + 0xc]
lea ecx, [ebp + 0x4c]
call fcn.00444f56
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
lea eax, [esi + 8]
push eax
lea ecx, [ebp + 0x4c]
call fcn.00444d00
jmp 0x462c22
push dword [ebp + 0xc]
lea eax, [ebp + 0x4c]
push eax
call fcn.004496a5
pop ecx
pop ecx
mov esi, eax
mov edi, dword [ebp + 0x4c]
mov byte [ebp + 0x65], 2
test esi, esi
mov dword [ebp - 4], edi
jl 0x462da8
mov ebx, edi
cmp byte [ebp + 0x4b], 0
je 0x462c97
cmp byte [ebp + 0x65], 0
je 0x462c97
push 2
push 0x4c7378
push ebx
call fcn.0043e718
add esp, 0xc
test eax, eax
jne 0x462c5f
mov dword [ebp + 0x60], 0x4b0
jmp 0x462c97
push 2
push 0x4c737c
push ebx
call fcn.0043e718
add esp, 0xc
test eax, eax
jne 0x462c7c
mov dword [ebp + 0x60], 0x4b1
jmp 0x462c97
push 3
push 0x4c7380
push ebx
call fcn.0043e718
add esp, 0xc
test eax, eax
jne 0x462c97
mov dword [ebp + 0x30], 0xfde9
cmp esi, 0xffffffff
jne 0x462cb7
cmp dword [ebp + 0x60], 0
push ebx
je 0x462caf
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x462cb7
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
lea ecx, [ebp + 0x68]
mov dword [ebp + 0x34], ebx
mov dword [ebp - 0x24], ebx
call fcn.00444e32
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x44], eax
jne 0x462d55
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x10], eax
jne 0x462d55
cmp byte [ebp + 0x66], 0
je 0x462cf7
push 0
lea eax, [ebp + 0x38]
push eax
push esi
push ebx
push dword [ebp + 0x38]
push dword [ebp + 0x28]
call fcn.00451f9e
add esp, 0x18
jmp 0x462d39
cmp byte [ebp + 0x7b], 0
jne 0x462d09
push esi
push ebx
lea ecx, [ebp + 0x40]
call fcn.0043e4b5
jmp 0x462d39
cmp dword [ebp - 0x10], 0
jne 0x462d22
push esi
lea eax, [ebp + 0x68]
push ebx
push eax
call fcn.0044967f
add esp, 0xc
push dword [ebp + 0x68]
jmp 0x462d2e
cmp dword [ebp + 0x54], 0
je 0x462d2d
push dword [ebp + 0xc]
jmp 0x462d2e
push ebx
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x28]
call fcn.0044451e
lea ecx, [ebp + 0x68]
call fcn.0043e679
lea ecx, [ebp + 0x4c]
call fcn.0043e679
lea ecx, [ebp + 0x40]
call fcn.00402cb0
xor esi, esi
jmp 0x462dbb
cmp dword [ebp + 0x60], 0x4b1
jne 0x462d71
push esi
push ebx
mov dword [ebp + 0x60], 0x4b0
call fcn.00442d1c
pop ecx
pop ecx
and esi, 0xfffffffe
cmp byte [ebp + 0x7b], 0
jne 0x462def
push dword [ebp + 0x38]
call fcn.0041310a
pop ecx
xor ebx, ebx
push ebx
push 0x80
push 4
push ebx
push 7
push 0x40000000
push eax
lea ecx, [ebp + 0x40]
call fcn.00405bea
cmp dword [ebp + 0x40], ebx
jne 0x462def
lea ecx, [ebp + 0x68]
call fcn.0043e679
lea ecx, [ebp + 0x4c]
call fcn.0043e679
lea ecx, [ebp + 0x40]
call fcn.00402cb0
xor esi, esi
inc esi
lea ecx, [ebp + 0x38]
call fcn.0043e679
lea ecx, [ebp - 0x2c]
call fcn.0043e679
lea ecx, [ebp + 0xc]
call fcn.0043e679
lea ecx, [ebp + 0x20]
call fcn.0043e679
lea ecx, [ebp - 0x54]
call fcn.0043e679
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
and dword [ebp + 0x54], 0
mov eax, 0x3a8
cmp dword [ebp + 0x44], eax
mov ebx, 0x3b6
jne 0x462e07
cmp dword [ebp + 0x30], ebx
je 0x462e11
cmp dword [ebp + 0x30], eax
jne 0x462e84
cmp dword [ebp + 0x44], ebx
jne 0x462e84
cmp byte [ebp + 0x3f], 0
je 0x462e1b
mov byte [ebp + 0x3f], 3
lea ecx, [ebp + 0x2c]
call fcn.00444cbe
xor eax, eax
cmp dword [ebp + 0x44], ebx
sete al
push eax
lea eax, [ebp + 0x2c]
push eax
push dword [ebp - 4]
call fcn.00449732
mov eax, edi
mov edi, dword [ebp + 0x2c]
add esp, 0xc
push edi
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [ebp + 0x3f], 3
mov esi, eax
mov dword [ebp + 0x34], edi
mov dword [ebp - 4], edi
jne 0x462e7c
cmp byte [ebp + 0x7b], 0
jne 0x462e7c
test esi, esi
jle 0x462e6f
push esi
push edi
lea ecx, [ebp + 0x40]
call fcn.0043e4b5
lea ecx, [ebp + 0x2c]
call fcn.0043e679
jmp 0x46302d
lea ecx, [ebp + 0x2c]
call fcn.0043e679
mov eax, esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
cmp dword [ebp + 0x60], 0
jne 0x462ecc
lea edi, [esi + 0xa]
lea eax, [edi + 0xa]
push eax
lea ecx, [ebp + 0x68]
call fcn.00444e77
mov ebx, dword [ebp + 0x68]
push edi
push ebx
push esi
push dword [ebp - 4]
push 0
push dword [ebp + 0x30]
call dword [0x4dbbe4]
mov edi, eax
test edi, edi
jge 0x462ebe
xor edi, edi
lea esi, [edi + edi]
and word [ebx + esi], 0
mov dword [ebp + 0x34], ebx
mov dword [ebp - 0x24], ebx
cmp dword [ebp + 0x10], 0x4b1
jne 0x462ee0
push esi
push dword [ebp + 0x34]
call fcn.00442d1c
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp + 0x10], eax
jle 0x462f77
cmp byte [ebp + 0x66], al
je 0x462f14
push eax
lea eax, [ebp + 0x38]
push eax
push esi
push dword [ebp + 0x34]
push dword [ebp + 0x38]
push dword [ebp + 0x28]
call fcn.00451f9e
add esp, 0x18
lea ecx, [ebp + 0x54]
call fcn.0043e679
jmp 0x462d39
cmp byte [ebp + 0x7b], 0
jne 0x462f3f
cmp esi, eax
jle 0x46302d
cmp dword [ebp + 0x1c], 0
je 0x462f36
push dword [ebp + 0x24]
lea ecx, [ebp + 0x40]
push dword [ebp + 0x1c]
call fcn.0043e4b5
push esi
push dword [ebp + 0x34]
jmp 0x462fe3
cmp dword [ebp - 0x10], eax
jne 0x462f7c
lea ecx, [ebp + 0x78]
call fcn.00444e32
push edi
push dword [ebp + 0x34]
lea eax, [ebp + 0x78]
push eax
call fcn.0044967f
mov ecx, dword [ebp + 0x28]
add esp, 0xc
push dword [ebp + 0x78]
push dword [ebp + 0x38]
call fcn.0044451e
lea ecx, [ebp + 0x78]
call fcn.0043e679
jmp 0x46302d
cmp dword [ebp - 0x10], eax
je 0x462f84
push dword [ebp - 0x24]
jmp 0x463022
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
lea edi, [esi + esi*2]
lea edi, [edi + edi + 0xa]
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x54]
call fcn.00444d00
xor ebx, ebx
push ebx
push ebx
push edi
mov edi, dword [ebp + 0x54]
push edi
push esi
push dword [ebp + 0x34]
push ebx
push dword [ebp + 0x44]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
cmp esi, ebx
jge 0x462fbf
xor esi, esi
cmp byte [ebp + 0x7b], 0
mov byte [edi + esi], 0
jne 0x462fed
cmp esi, ebx
jle 0x46302d
cmp dword [ebp + 0x1c], 0
je 0x462fe1
push dword [ebp + 0x24]
lea ecx, [ebp + 0x40]
push dword [ebp + 0x1c]
call fcn.0043e4b5
push esi
push edi
lea ecx, [ebp + 0x40]
call fcn.0043e4b5
jmp 0x46302d
cmp byte [ebp + 0x66], 0
je 0x463011
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
lea ecx, [ebp + 0x38]
push ecx
push eax
push edi
push dword [ebp + 0x38]
push dword [ebp + 0x28]
call fcn.00451f9e
add esp, 0x18
jmp 0x46302d
push esi
lea eax, [ebp + 0x68]
push edi
push eax
call fcn.0044961e
add esp, 0xc
push dword [ebp + 0x68]
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x28]
call fcn.0044451e
xor esi, esi
cmp dword [ebp + 0x40], esi
je 0x46303d
push dword [ebp + 0x40]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x54]
call fcn.0043e679
lea ecx, [ebp + 0x68]
call fcn.0043e679
lea ecx, [ebp + 0x4c]
call fcn.0043e679
lea ecx, [ebp + 0x40]
call fcn.00402cb0
jmp 0x462dbb