Function at 0x4a7360
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6fcaf6
mov eax, dword fs:[0]
push eax
mov eax, 0x1084
call fcn.006b59e0
mov eax, dword [0x7e6410]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1054], esi
push 1
lea eax, [ebp - 0x104c]
mov dword [ebp - 0x104c], 0
push eax
push 0
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4a73d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4a73d5
cmp byte [esi + 0x14], 0
jne 0x4a73d5
or ecx, edi
or eax, edi
jmp 0x4a73e3
mov eax, dword [ebp - 0x104c]
xor ecx, ecx
add ecx, edi
cdq
adc eax, 0
cmp byte [esi + 0x65f8], 0
mov dword [esi + 0x65e8], ecx
mov dword [esi + 0x65ec], eax
je 0x4a7404
mov ecx, esi
call fcn.004a8320
jmp 0x4a82c2
mov dword [ebp - 0x1044], 0
mov dword [ebp - 0x1040], 0
mov dword [ebp - 0x103c], 0
mov dword [ebp - 0x1038], esi
mov dword [ebp - 0x1030], 0
mov dword [ebp - 0x1034], 0
mov dword [ebp - 0x102c], 0
mov dword [ebp - 4], 0
cmp byte [esi + 0x6600], 0
je 0x4a7502
mov edx, dword [esi + 0x6604]
add edx, 0x14
test eax, eax
jl 0x4a7502
jg 0x4a7475
cmp ecx, edx
jb 0x4a7502
push 8
lea ebx, [esi + 0xe60]
mov byte [ebp - 0x104d], 1
push ebx
mov ecx, esi
call fcn.004a5c20
cmp eax, 8
jne 0x4a7577
mov eax, dword [esi + 0x1390]
cmp byte [eax + 0x1c10], 0
jne 0x4a74dd
mov ecx, esi
call fcn.004a5a60
cmp byte [0x7e85ac], 0
je 0x4a74dd
mov eax, dword [0x7e85a4]
mov ecx, 0xff
test eax, eax
cmove eax, ecx
inc dword [0x7e85a8]
mov dword [0x7e85a4], eax
call fcn.004a6170
push 0xff
call fcn.006c0359
mov eax, dword [esi + 0x1390]
lea edi, [esi + 0xc20]
push 0
push ecx
push ebx
add eax, 0x1c10
mov ecx, edi
push eax
call fcn.004b8170
mov dword [ebp - 0x102c], edi
jmp 0x4a7509
mov byte [ebp - 0x104d], 0
push 7
lea ecx, [ebp - 0x1044]
call fcn.004b7bc0
cmp dword [ebp - 0x1034], 0
jne 0x4a757e
mov ecx, esi
call fcn.004a6020
cmp dword [esi + 0x65ec], edx
jg 0x4a754a
jl 0x4a7538
cmp dword [esi + 0x65e8], eax
ja 0x4a754a
cmp dword [esi + 0x65f4], edx
jl 0x4a7564
jg 0x4a754a
cmp dword [esi + 0x65f0], eax
jbe 0x4a7564
mov eax, dword [0x7e85a4]
mov ecx, 1
test eax, eax
cmove eax, ecx
inc dword [0x7e85a8]
mov dword [0x7e85a4], eax
mov eax, dword [ebp - 0x1044]
test eax, eax
je 0x4a7577
push eax
call fcn.006b31f8
add esp, 4
xor eax, eax
jmp 0x4a82c2
mov edx, dword [ebp - 0x1030]
mov eax, 0x100
mov edi, dword [ebp - 0x1044]
movzx ecx, byte [edi + edx + 1]
imul cx, ax
movzx eax, byte [edi + edx]
add cx, ax
mov eax, 0x100
mov word [esi + 0x3e94], cx
movzx ebx, byte [edi + edx + 2]
mov dword [esi + 0x3e98], ebx
movzx ecx, byte [edi + edx + 4]
imul cx, ax
movzx eax, byte [edi + edx + 3]
add cx, ax
movzx eax, cx
mov word [esi + 0x3e9c], ax
movzx ecx, byte [edi + edx + 6]
mov dword [ebp - 0x105c], eax
mov eax, 0x100
imul cx, ax
movzx eax, byte [edi + edx + 5]
add edx, 7
mov dword [ebp - 0x1030], edx
add cx, ax
mov word [esi + 0x3e9e], cx
cmp cx, 7
jae 0x4a7632
mov byte [esi + 0x6608], 1
inc dword [0x7e85a8]
mov dword [0x7e85a4], 3
test edi, edi
je 0x4a7577
push edi
call fcn.006b31f8
add esp, 4
xor eax, eax
jmp 0x4a82c2
cmp ebx, 0x75
jne 0x4a763b
push 6
jmp 0x4a7658
cmp ebx, 0x73
jne 0x4a764d
test byte [ebp - 0x105c], 2
je 0x4a764d
push 6
jmp 0x4a7658
movzx eax, word [esi + 0x3e9e]
sub eax, 7
push eax
lea ecx, [ebp - 0x1044]
call fcn.004b7bc0
movzx eax, word [esi + 0x3e9e]
cdq
add eax, dword [esi + 0x65e8]
mov dword [esi + 0x65f0], eax
mov eax, dword [esi + 0x3e98]
adc edx, dword [esi + 0x65ec]
mov dword [esi + 0x65f4], edx
lea ecx, [eax - 0x73]
cmp ecx, 8
ja case.default.0x4a7695
jmp dword [ecx*4 + 0x4a82e0]
movq xmm0, qword [esi + 0x3e94]
lea ecx, [ebp - 0x1044]
mov eax, dword [esi + 0x3e9c]
movq qword [esi + 0x3ea0], xmm0
mov dword [esi + 0x3ea8], eax
lea eax, [esi + 0x3eb0]
push eax
call fcn.004b7cf0
lea eax, [esi + 0x3eb4]
push eax
call fcn.004b7d20
jmp 0x4a8174
movq xmm0, qword [esi + 0x3e94]
mov eax, dword [esi + 0x3e9c]
movq qword [esi + 0x4bd0], xmm0
mov dword [esi + 0x4bd8], eax
test al, 2
je 0x4a770d
lea eax, [esi + 0x4bdc]
push eax
lea ecx, [ebp - 0x1044]
call fcn.004b7d20
test byte [esi + 0x4bd8], 8
je 0x4a8174
lea eax, [esi + 0x4be0]
push eax
lea ecx, [ebp - 0x1044]
call fcn.004b7cf0
jmp 0x4a8174
lea ebx, [esi + 0x3eb8]
cmp eax, 0x74
je 0x4a7742
lea ebx, [esi + 0x4bf8]
movq xmm0, qword [esi + 0x3e94]
lea ecx, [ebp - 0x1044]
movq qword [ebx], xmm0
mov eax, dword [esi + 0x3e9c]
mov dword [ebx + 8], eax
lea eax, [ebx + 0xc]
push eax
mov dword [ebp - 0x1048], ebx
call fcn.004b7d20
lea eax, [ebx + 0x10]
push eax
call fcn.004b7d20
mov ecx, dword [ebp - 0x1030]
mov eax, dword [ebp - 0x1044]
mov al, byte [eax + ecx]
inc ecx
mov byte [ebx + 0x14], al
lea eax, [ebx + 0x18]
mov dword [ebp - 0x1030], ecx
lea ecx, [ebp - 0x1044]
push eax
call fcn.004b7d20
lea eax, [ebx + 0x1c]
push eax
call fcn.004b7d20
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1044]
mov al, byte [ecx + edx]
mov byte [ebx + 0x20], al
mov al, byte [ecx + edx + 1]
add edx, 2
mov byte [ebx + 0x21], al
lea ecx, [ebp - 0x1044]
lea eax, [ebx + 0x22]
mov dword [ebp - 0x1030], edx
push eax
call fcn.004b7cf0
lea eax, [ebx + 0x24]
push eax
call fcn.004b7d20
mov eax, 0x100
test word [ebx + 8], ax
je 0x4a77ff
lea eax, [ebx + 0x28]
push eax
call fcn.004b7d20
lea edi, [ebx + 0x2c]
push edi
call fcn.004b7d20
jmp 0x4a7822
cmp dword [ebx + 0x10], 0xffffffff
lea edi, [ebx + 0x2c]
mov dword [edi], 0
mov dword [ebx + 0x28], 0
jne 0x4a7822
mov dword [ebx + 0x10], 0
mov dword [edi], SysReAllocStringLen
mov ecx, dword [ebx + 0x28]
xor eax, eax
add eax, dword [ebx + 0xc]
mov dword [ebx + 0xd08], eax
adc ecx, 0
xor eax, eax
add eax, dword [ebx + 0x10]
mov dword [ebx + 0xd0c], ecx
mov ecx, dword [edi]
adc ecx, 0
mov dword [ebx + 0xd10], eax
movzx eax, word [ebx + 0x22]
mov dword [ebx + 0xd14], ecx
mov ecx, 0xfff
cmp ax, cx
jb 0x4a785f
mov eax, ecx
mov ebx, dword [ebp - 0x1030]
mov edi, dword [ebp - 0x1044]
push eax
mov dword [ebp - 0x104c], eax
lea eax, [edi + ebx]
push eax
lea eax, [ebp - 0x1010]
push eax
call fcn.006b3670
mov eax, dword [ebp - 0x104c]
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x1030], ebx
cmp eax, 0x1000
jae 0x4a7cdc
push 0x400
mov byte [ebp + eax - 0x1010], 0
lea ecx, [ebp - 0x1010]
mov eax, dword [ebp - 0x1048]
push ecx
add eax, 0x30
push 0x400
push eax
mov dword [ebp - 0x105c], eax
call fcn.006bfaab
mov edx, dword [ebp - 0x1048]
add esp, 0x10
mov ecx, 0x400
mov byte [edx + 0x42f], 0
mov eax, dword [edx + 4]
cmp eax, 0x7a
jne 0x4a79a7
movzx eax, word [edx + 0x22]
movzx ecx, word [edx + 0xa]
sub ecx, eax
mov eax, 0x400
sub ecx, 0x20
mov dword [ebp - 0x104c], ecx
test word [edx + 8], ax
je 0x4a7914
sub ecx, 8
mov dword [ebp - 0x104c], ecx
test ecx, ecx
jle 0x4a7a73
lea eax, [edx + 0xc30]
push ecx
mov ecx, eax
mov dword [ebp - 0x1058], eax
call fcn.004a71d0
push dword [ebp - 0x104c]
lea eax, [edi + ebx]
push eax
mov eax, dword [ebp - 0x1058]
push dword [eax]
call fcn.006b3670
add ebx, dword [ebp - 0x104c]
add esp, 0xc
mov ecx, dword [ebp - 0x1048]
mov dword [ebp - 0x1030], ebx
push 0x78b380
call fcn.004a40f0
test al, al
je 0x4a7997
mov eax, dword [ebp - 0x1058]
mov edx, dword [eax]
movzx ecx, byte [edx + 0xb]
movzx eax, byte [edx + 0xa]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 8]
shl ecx, 8
add ecx, eax
mov dword [esi + 0x3e48], ecx
mov edx, dword [ebp - 0x1048]
mov ecx, 0x400
jmp 0x4a7a75
cmp eax, 0x74
jne 0x4a7a75
mov eax, 0x200
test word [edx + 8], ax
je 0x4a7a3f
lea ecx, [ebp - 0x1010]
mov byte [ebp - 0x1020], 0
mov dword [ebp - 0x101c], 0
lea edi, [ecx + 1]
mov dword [ebp - 0x1018], 0
mov dword [ebp - 0x1014], 0
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a79f0
movzx eax, word [edx + 0x22]
sub ecx, edi
inc ecx
lea edi, [edx + 0x430]
push ecx
sub eax, ecx
push edi
push eax
lea eax, [ebp - 0x1010]
add eax, ecx
lea ecx, [ebp - 0x1024]
push eax
lea eax, [ebp - 0x1010]
push eax
call fcn.004b7a20
cmp word [edi], 0
mov edi, dword [ebp - 0x1044]
jne 0x4a7a3f
mov eax, dword [ebp - 0x1048]
mov ecx, 0xfdff
and word [eax + 8], cx
push dword [ebp - 0x105c]
mov ecx, esi
call fcn.004a86c0
mov eax, dword [ebp - 0x1048]
mov ecx, esi
add eax, 0x430
push eax
call fcn.004a8730
mov ecx, esi
call fcn.004a87c0
mov edx, dword [ebp - 0x1048]
mov ecx, 0x400
jmp 0x4a7a75
mov ecx, eax
test word [edx + 8], cx
je 0x4a7a91
movq xmm0, qword [edi + ebx]
add ebx, 8
movq qword [edx + 0xc3c], xmm0
mov dword [ebp - 0x1030], ebx
push dword [edx + 0x1c]
lea ecx, [edx + 0xc48]
call fcn.004ae720
mov ecx, dword [ebp - 0x1048]
mov eax, 0x1000
mov dword [ecx + 0xc78], 0
mov dword [ecx + 0xca8], 0
mov dword [ecx + 0xcd8], 0
test word [ecx + 8], ax
je 0x4a7c37
movzx ecx, byte [edi + ebx + 1]
mov eax, 0x100
imul cx, ax
movzx eax, byte [edi + ebx]
add ebx, 2
mov dword [ebp - 0x1030], ebx
add cx, ax
lea eax, [esi + 0x4b00]
mov dword [ebp - 0x1020], eax
lea eax, [esi + 0x4b30]
mov dword [ebp - 0x101c], eax
lea eax, [esi + 0x4b60]
mov dword [ebp - 0x1018], eax
lea eax, [esi + 0x4b90]
mov dword [ebp - 0x1014], eax
xor eax, eax
movzx edx, cx
mov dword [ebp - 0x1058], eax
mov dword [ebp - 0x1068], edx
mov esi, dword [ebp + eax*4 - 0x1020]
mov ecx, 3
sub ecx, eax
mov dword [ebp - 0x1064], esi
shl cl, 2
shr edx, cl
mov dword [ebp - 0x1060], edx
test dl, 8
je 0x4a7c15
test eax, eax
je 0x4a7b8e
lea eax, [ebp - 0x104c]
push eax
lea ecx, [ebp - 0x1044]
call fcn.004b7d20
push dword [ebp - 0x104c]
mov ecx, esi
call fcn.004ae720
mov ebx, dword [ebp - 0x1030]
mov edx, dword [ebp - 0x1060]
mov edi, dword [ebp - 0x1044]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x1060], eax
movdqu xmm0, xmmword [esi + 0x10]
movdqu xmm1, xmmword [esi]
movdqu xmmword [ebp - 0x107c], xmm0
test dl, 4
je 0x4a7bb3
inc dword [ebp - 0x1078]
mov dword [ebp - 0x1074], 0
and edx, 3
jle 0x4a7bfb
mov esi, dword [ebp - 0x1074]
mov ecx, 3
sub ecx, edx
shl ecx, 3
mov al, byte [edi + ebx]
inc ebx
movzx eax, al
shl eax, cl
add ecx, 8
or esi, eax
dec edx
jne 0x4a7bd2
mov eax, dword [ebp - 0x1060]
mov dword [ebp - 0x1074], esi
mov esi, dword [ebp - 0x1064]
mov dword [ebp - 0x1030], ebx
movdqu xmm0, xmmword [ebp - 0x107c]
movdqu xmmword [esi], xmm1
movdqu xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x1058]
mov edx, dword [ebp - 0x1068]
inc eax
mov dword [ebp - 0x1058], eax
cmp eax, 4
jl 0x4a7b31
mov esi, dword [ebp - 0x1054]
mov ecx, dword [ebp - 0x1048]
mov eax, dword [ecx + 0xd08]
add dword [esi + 0x65f0], eax
mov eax, dword [ecx + 0xd0c]
adc dword [esi + 0x65f4], eax
mov al, byte [ecx + 8]
lea ecx, [ebp - 0x1044]
shr al, 3
and al, 1
mov byte [ebp - 0x1054], al
push dword [ebp - 0x1054]
call fcn.004b7d60
mov ecx, dword [ebp - 0x1048]
not eax
movzx eax, ax
mov word [esi + 0x660a], ax
cmp word [ecx], ax
je 0x4a8174
cmp dword [ecx + 4], 0x7a
jne 0x4a7ca5
push 0x78b38c
lea eax, [ecx + 0x30]
push 0x400
push eax
call fcn.006bdc00
add esp, 0xc
mov byte [esi + 0x6608], 1
mov ecx, 1
mov eax, dword [0x7e85a4]
test eax, eax
push 0x80a678
push dword [ebp - 0x105c]
cmove eax, ecx
inc dword [0x7e85a8]
mov dword [0x7e85a4], eax
call dword [sym.imp.USER32.dll_OemToCharA]
jmp 0x4a8174
call fcn.006b87e0
movq xmm0, qword [esi + 0x3e94]
lea ecx, [ebp - 0x1044]
mov eax, dword [esi + 0x3e9c]
movq qword [esi + 0x5910], xmm0
mov dword [esi + 0x5918], eax
lea eax, [esi + 0x591c]
push eax
call fcn.004b7cf0
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1044]
mov al, byte [ecx + edx]
mov byte [esi + 0x591e], al
mov al, byte [ecx + edx + 1]
add edx, 2
mov byte [esi + 0x591f], al
lea ecx, [ebp - 0x1044]
lea eax, [esi + 0x5920]
mov dword [ebp - 0x1030], edx
push eax
call fcn.004b7cf0
jmp 0x4a8174
movq xmm0, qword [esi + 0x3e94]
lea ecx, [ebp - 0x1044]
mov eax, dword [esi + 0x3e9c]
movq qword [esi + 0x5958], xmm0
mov dword [esi + 0x5960], eax
lea eax, [esi + 0x5964]
push eax
call fcn.004b7d20
lea eax, [esi + 0x5968]
push eax
call fcn.004b7cf0
lea eax, [esi + 0x596a]
push eax
call fcn.004b7cf0
jmp 0x4a8174
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1044]
movq xmm0, qword [esi + 0x3e94]
mov eax, dword [esi + 0x3e9c]
movq qword [esi + 0x5944], xmm0
mov dword [esi + 0x594c], eax
mov al, byte [ecx + edx]
mov byte [esi + 0x5950], al
mov al, byte [ecx + edx + 1]
mov byte [esi + 0x5951], al
mov al, byte [ecx + edx + 2]
add edx, 3
mov byte [esi + 0x5952], al
lea ecx, [ebp - 0x1044]
lea eax, [esi + 0x5954]
mov dword [ebp - 0x1030], edx
push eax
call fcn.004b7d20
jmp 0x4a8174
movq xmm0, qword [esi + 0x3e94]
lea ebx, [esi + 0x5930]
mov eax, dword [esi + 0x3e9c]
lea ecx, [ebp - 0x1044]
movq qword [esi + 0x5924], xmm0
push ebx
mov dword [esi + 0x592c], eax
call fcn.004b7d20
mov ecx, dword [ebp - 0x1030]
lea edi, [esi + 0x5936]
mov eax, dword [ebp - 0x1044]
push edi
mov al, byte [eax + ecx]
inc ecx
mov dword [ebp - 0x1030], ecx
lea ecx, [ebp - 0x1044]
mov byte [esi + 0x5934], al
call fcn.004b7cf0
lea eax, [esi + 0x5938]
push eax
call fcn.004b7d20
mov eax, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1044]
movq xmm0, qword [ecx + eax]
add eax, 8
movq qword [esi + 0x593c], xmm0
mov dword [ebp - 0x1030], eax
mov eax, dword [ebx]
add dword [esi + 0x65f0], eax
movzx eax, word [edi]
mov dword [esi + 0x3e48], eax
jmp 0x4a816d
movq xmm0, qword [esi + 0x3e94]
lea edi, [esi + 0x4bf0]
mov eax, dword [esi + 0x3e9c]
lea ecx, [ebp - 0x1044]
movq qword [esi + 0x4be4], xmm0
push edi
mov dword [esi + 0x4bec], eax
call fcn.004b7d20
mov eax, dword [edi]
lea edi, [esi + 0x4bf4]
add dword [esi + 0x65f0], eax
push edi
adc dword [esi + 0x65f4], 0
call fcn.004b7cf0
mov ecx, dword [ebp - 0x1030]
mov ebx, dword [ebp - 0x1044]
mov al, byte [ebx + ecx]
inc ecx
mov byte [esi + 0x4bf6], al
movzx eax, word [edi]
add eax, 0xffffff00
mov dword [ebp - 0x1030], ecx
cmp eax, 5
ja case.default.0x4a7f14
jmp dword [eax*4 + 0x4a8304]
movdqu xmm0, xmmword [esi + 0x4be4]
mov eax, dword [esi + 0x4bf4]
lea edi, [esi + 0x5980]
push edi
movdqu xmmword [esi + 0x596c], xmm0
lea ecx, [ebp - 0x1044]
mov dword [esi + 0x597c], eax
call fcn.004b7cf0
lea ebx, [esi + 0x5982]
push ebx
call fcn.004b7cf0
mov eax, 0x3ff
cmp word [edi], ax
jbe 0x4a7f62
mov word [edi], ax
cmp word [ebx], ax
jbe 0x4a7f6a
mov word [ebx], ax
movzx edi, word [edi]
mov eax, dword [ebp - 0x1044]
mov ebx, dword [ebp - 0x1030]
add eax, ebx
push edi
push eax
lea eax, [esi + 0x5984]
push eax
call fcn.006b3670
mov eax, dword [ebp - 0x1044]
add esp, 0xc
add ebx, edi
movzx edi, word [esi + 0x5982]
add eax, ebx
push edi
push eax
lea eax, [esi + 0x5d84]
push eax
call fcn.006b3670
movzx eax, word [esi + 0x5980]
add esp, 0xc
add ebx, edi
mov dword [ebp - 0x1030], ebx
mov byte [eax + esi + 0x5984], 0
movzx eax, word [esi + 0x5982]
mov byte [eax + esi + 0x5d84], 0
jmp 0x4a8174
movdqu xmm0, xmmword [esi + 0x4be4]
mov eax, dword [esi + 0x4bf4]
lea ecx, [ebp - 0x1044]
movdqu xmmword [esi + 0x6184], xmm0
mov dword [esi + 0x6194], eax
lea eax, [esi + 0x6198]
push eax
call fcn.004b7d20
lea eax, [esi + 0x619c]
push eax
call fcn.004b7d20
jmp 0x4a8174
movdqu xmm0, xmmword [esi + 0x4be4]
mov eax, dword [esi + 0x4bf4]
lea ecx, [ebp - 0x1044]
movdqu xmmword [esi + 0x61a0], xmm0
mov dword [esi + 0x61b0], eax
lea eax, [esi + 0x61b4]
push eax
call fcn.004b7d20
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1044]
mov al, byte [ecx + edx]
mov byte [esi + 0x61b8], al
mov al, byte [ecx + edx + 1]
add edx, 2
mov byte [esi + 0x61b9], al
lea ecx, [ebp - 0x1044]
lea eax, [esi + 0x61bc]
mov dword [ebp - 0x1030], edx
push eax
call fcn.004b7d20
jmp 0x4a8174
movdqu xmm0, xmmword [esi + 0x4be4]
mov eax, dword [esi + 0x4bf4]
lea ecx, [ebp - 0x1044]
movdqu xmmword [esi + 0x61c0], xmm0
mov dword [esi + 0x61d0], eax
lea eax, [esi + 0x61d4]
push eax
call fcn.004b7d20
mov edx, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1044]
mov al, byte [ecx + edx]
mov byte [esi + 0x61d8], al
mov al, byte [ecx + edx + 1]
add edx, 2
mov byte [esi + 0x61d9], al
lea ecx, [ebp - 0x1044]
lea eax, [esi + 0x61dc]
mov dword [ebp - 0x1030], edx
push eax
call fcn.004b7d20
lea ebx, [esi + 0x61e0]
push ebx
call fcn.004b7cf0
mov eax, 0x3ff
cmp word [ebx], ax
jbe 0x4a8106
mov word [ebx], ax
movzx ebx, word [ebx]
mov eax, dword [ebp - 0x1044]
mov edi, dword [ebp - 0x1030]
add eax, edi
push ebx
push eax
lea eax, [esi + 0x61e2]
push eax
call fcn.006b3670
movzx eax, word [esi + 0x61e0]
add esp, 0xc
add edi, ebx
mov dword [ebp - 0x1030], edi
mov byte [eax + esi + 0x61e2], 0
jmp 0x4a8174
mov eax, 0x8000
test word [esi + 0x3e9c], ax
je 0x4a8174
lea eax, [ebp - 0x1054]
push eax
lea ecx, [ebp - 0x1044]
call fcn.004b7d20
mov eax, dword [ebp - 0x1054]
add dword [esi + 0x65f0], eax
adc dword [esi + 0x65f4], 0
mov ebx, dword [ebp - 0x1044]
mov edi, dword [ebp - 0x1034]
cmp edi, 2
jle 0x4a8199
lea eax, [edi - 2]
or ecx, 0xffffffff
lea edx, [ebx + 2]
push eax
call fcn.004b6f50
add esp, 4
jmp 0x4a819c
or eax, 0xffffffff
cmp byte [ebp - 0x104d], 0
not eax
mov ecx, dword [esi + 0x3e98]
movzx eax, ax
mov dword [ebp - 0x1054], eax
mov word [esi + 0x660a], ax
mov dword [esi + 0x3e8c], ecx
je 0x4a8295
mov eax, dword [ebp - 0x1040]
sub eax, edi
add eax, 8
cdq
add dword [esi + 0x65f0], eax
mov eax, dword [ebp - 0x1054]
adc dword [esi + 0x65f4], edx
cmp word [esi + 0x3e94], ax
je 0x4a8295
cmp ecx, 0x7b
jne 0x4a825c
test byte [esi + 0x4bd8], 4
je 0x4a825c
push esi
lea ecx, [ebp - 0x1028]
call fcn.004b6e30
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.004a5e90
sub eax, 7
mov ecx, esi
push 0
sbb edx, 0
push edx
push eax
call fcn.004a5de0
mov bl, 1
mov edi, 7
nop
mov ecx, esi
call fcn.004a5f50
xor ecx, ecx
movzx ebx, bl
test al, al
cmovne ebx, ecx
dec edi
jne 0x4a8230
mov byte [ebp - 4], cl
lea ecx, [ebp - 0x1028]
call fcn.004b6ea0
test bl, bl
mov ebx, dword [ebp - 0x1044]
jne 0x4a828f
mov ecx, esi
call fcn.004a5a60
mov byte [esi + 0x6608], 1
inc dword [0x7e85a8]
mov dword [0x7e85a4], 3
test ebx, ebx
je 0x4a7577
push ebx
call fcn.006b31f8
add esp, 4
xor eax, eax
jmp 0x4a82c2
mov edi, dword [ebp - 0x1034]
mov eax, dword [esi + 0x65f4]
cmp eax, dword [esi + 0x65ec]
jg 0x4a82b3
jl 0x4a8263
mov eax, dword [esi + 0x65f0]
cmp eax, dword [esi + 0x65e8]
jbe 0x4a8263
test ebx, ebx
je 0x4a82c0
push ebx
call fcn.006b31f8
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006b3266
mov esp, ebp
pop ebp
ret