Function at 0x4a3ad0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
push ebx
push esi
mov dword [ebp - 0x2c], ecx
xor edx, edx
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x18], edx
push edi
mov edi, dword [ebp + 0x20]
test ecx, ecx
jne 0x4a3b25
cmp dword [ebp + 0x10], edx
mov eax, 0x4db49a
cmovne eax, ecx
mov ecx, eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0xc], ecx
test dword [ebp + 0x18], 0x1fff9fc0
jne 0x4a4b29
mov edx, dword [ebp + 8]
test edx, edx
je 0x4a4b1d
test ecx, ecx
je 0x4a4b1d
test eax, eax
je 0x4a4b1d
mov ebx, dword [ebp + 0x14]
lea eax, [ebx + ebx]
mov dword [ebp - 0x10c], eax
add eax, ecx
mov esi, eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x1c], esi
lea eax, [esi - 2]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp + 0x10]
cmp eax, 0xffffffff
jne 0x4a3b93
push ecx
call fcn.0048b060
mov ecx, dword [ebp + 0xc]
add esp, 4
mov edx, dword [ebp + 8]
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x100], 1
lea eax, [ecx + eax*2]
mov dword [ebp - 4], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x44], eax
cmp ebx, dword [ebp + 0x10]
jbe 0x4a3bb0
pop edi
pop esi
mov eax, 0xffffffdf
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edx + 0x38], 0x50435245
je 0x4a3bc5
pop edi
pop esi
mov eax, 0xffffffe1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx + 0x48]
mov eax, ecx
and al, 7
cmp al, 2
je 0x4a3bdc
pop edi
pop esi
mov eax, 0xffffffe0
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [edx + 0x40]
mov eax, edx
shr ecx, 0xe
and ecx, 0xc
shr eax, 0x13
or dword [ebp + 0x18], ecx
and eax, 1
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
test cl, 0x20
je 0x4a3c05
mov eax, 2
jmp 0x4a3c0d
mov eax, ecx
shr eax, 4
and eax, 1
movzx eax, ax
mov word [ebp - 0xb0], ax
test ax, ax
je 0x4a3c2b
mov eax, edx
or eax, ecx
test eax, 0x20000000
jne 0x4a4b29
test edi, edi
je 0x4a3c49
cmp dword [edi + 0x1c], 0xffffffff
je 0x4a3c49
test edx, 0x800000
jne 0x4a3c49
pop edi
pop esi
mov eax, 0xffffffc8
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x1c]
test byte [eax + 0x2d], 1
je 0x4a3c6d
push dword [eax + 8]
push dword [eax + 0x10]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp + 0x1c]
add esp, 8
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x18]
and byte [eax + 0x2d], 0xfe
mov dword [eax + 0x10], 0
add eax, 0x28
cmp dword [ebp - 8], 0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x3c], 0xfc00
mov dword [eax], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x30], 0xdc00
je 0x4a3e06
test ecx, 0x40000000
je 0x4a3cb5
test edx, 0x4000000
je 0x4a3e06
mov eax, edx
xor ecx, ecx
mov edx, dword [ebp - 4]
and eax, 0x4000000
cmp esi, edx
jae 0x4a3ced
test eax, eax
je 0x4a3e16
mov ebx, 0xfc00
mov ax, word [esi]
and ax, bx
cmp ax, word [ebp - 0x30]
jne 0x4a3ced
add esi, 2
mov ecx, 1
mov dword [ebp - 0x1c], esi
cmp esi, edx
jb 0x4a3cd2
mov ebx, dword [ebp + 0xc]
mov edx, esi
mov dword [ebp - 0x9c], edx
test ecx, ecx
jne 0x4a3d3f
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x64]
test ecx, ecx
je 0x4a3d3f
cmp edx, ebx
jbe 0x4a3d3f
sub edx, 2
mov dword [ebp - 0x9c], edx
cmp edx, ebx
jbe 0x4a3d3a
nop dword [eax + eax]
mov ax, word [edx]
and ax, word [ebp - 0x3c]
cmp ax, word [ebp - 0x30]
jne 0x4a3d3a
sub edx, 2
mov dword [ebp - 0x9c], edx
cmp edx, ebx
ja 0x4a3d20
sub ecx, 1
jne 0x4a3d07
push dword [ebp - 0x24]
mov eax, dword [ebp + 0x10]
mov ecx, edx
sub ecx, ebx
sar ecx, 1
sub eax, ecx
push eax
push edx
call fcn.0048d430
mov edx, dword [ebp + 0x1c]
add esp, 0xc
mov dword [edx + 0x30], eax
test eax, eax
je 0x4a3e00
mov ebx, dword [ebp - 0xc]
nop dword [eax + eax]
mov ecx, dword [ebp - 0x9c]
sub ecx, dword [ebp + 0xc]
mov eax, dword [edx + 0x28]
sar ecx, 1
add eax, ecx
mov dword [edx + 0x28], eax
test ebx, 0x4000000
je 0x4a3e4b
cmp dword [edx + 0x30], 0
jg 0x4a3e4b
mov ecx, dword [ebp + 0xc]
lea eax, [ecx + eax*2]
mov dword [ebp - 4], eax
cmp eax, esi
jae 0x4a3e42
lea edx, [eax + 2]
mov dword [ebp - 0x9c], edx
cmp edx, esi
jae 0x4a3dd9
mov ecx, 0xfc00
nop dword [eax]
mov ax, word [edx]
and ax, cx
cmp ax, word [ebp - 0x30]
jne 0x4a3dd9
add edx, 2
mov dword [ebp - 0x9c], edx
cmp edx, esi
jb 0x4a3dc0
push dword [ebp - 0x24]
mov eax, dword [ebp + 0x10]
mov ecx, edx
sub ecx, dword [ebp + 0xc]
sar ecx, 1
sub eax, ecx
push eax
push edx
call fcn.0048d430
mov edx, dword [ebp + 0x1c]
add esp, 0xc
mov dword [edx + 0x30], eax
test eax, eax
jne 0x4a3d70
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
test edi, edi
jne 0x4a3e55
movq xmm0, qword [ecx]
mov eax, dword [ecx + 8]
jmp 0x4a3e5c
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4a3ced
xor eax, eax
cmp eax, ebx
pop edi
sbb eax, eax
and eax, 0xfffffff6
pop esi
add eax, 0xffffffe6
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x34], 2
jmp 0x4a3e06
mov eax, dword [edx + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movq xmm0, qword [edi]
mov eax, dword [edi + 8]
mov edx, dword [ecx + 0x40]
test edi, edi
mov ecx, dword [ecx + 0x48]
mov ebx, 0x500094
mov dword [ebp - 0xe4], eax
cmovne ebx, edi
mov eax, edx
movq qword [ebp - 0xec], xmm0
or eax, dword [ebp + 0x18]
shr eax, 0x1f
mov dword [ebp - 0x24], eax
mov eax, edx
shr eax, 8
and eax, 1
mov dword [ebp - 0x38], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0xf0], eax
mov eax, dword [ebx + 0x1c]
cmp eax, 0xffffffff
jne 0x4a3eab
mov eax, dword [ebp - 0x44]
jmp 0x4a3eb1
mov edi, dword [ebp + 0xc]
lea eax, [edi + eax*2]
mov edi, dword [ebp - 4]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x154]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x13c], eax
mov eax, edi
sub eax, dword [ebp + 0xc]
sar eax, 1
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xb8], eax
mov eax, ecx
shr eax, 0xc
and eax, 1
mov dword [ebp - 0x154], 2
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x98], edi
cmp word [eax + 0x64], 0
ja 0x4a3f35
test ecx, 0x2000
jne 0x4a3f35
xor eax, eax
jmp 0x4a3f3a
mov eax, 1
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x84], 0
movzx edx, word [eax + 0x6e]
lea edi, [eax + 0x70]
movzx eax, word [eax + 0x6c]
mov word [ebp - 0xaa], ax
imul eax, edx
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0x88], 0
mov word [ebp - 0xac], dx
mov dword [ebp - 0x64], 0
lea eax, [edi + eax*2]
mov edi, dword [ebp + 8]
mov dword [ebp - 0xa4], eax
mov ax, word [edi + 0x60]
mov word [ebp - 0xae], ax
movzx eax, word [edi + 0x62]
dec eax
cmp eax, 5
ja case.default.0x4a3faf
jmp dword [eax*4 + 0x4a4b38]
mov eax, 0xd
mov dword [ebp - 0x60], 1
mov word [ebp - 0x5c], ax
jmp 0x4a4009
mov eax, 0xa
mov dword [ebp - 0x60], 1
mov word [ebp - 0x5c], ax
jmp 0x4a4009
xor eax, eax
mov dword [ebp - 0x60], 1
mov word [ebp - 0x5c], ax
jmp 0x4a4009
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x5c], 0xa000d
jmp 0x4a4009
mov dword [ebp - 0x64], 1
jmp 0x4a4009
mov dword [ebp - 0x64], 2
movzx eax, word [edi + 0x68]
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
lea eax, [eax*8 + 0x57]
and eax, 0xfffffffc
cmp edx, dword [edi + 0x4c]
mov dword [ebp - 0x40], eax
cmovae edx, dword [edi + 0x4c]
shl edx, 0xa
cmp ecx, dword [edi + 0x50]
mov dword [ebp - 0xe0], edx
cmovae ecx, dword [edi + 0x50]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebx + 0x28]
cmp ecx, dword [edi + 0x54]
cmovae ecx, dword [edi + 0x54]
lea edi, [eax + eax*4]
add edi, edi
mov dword [ebp - 0xd8], ecx
mov ecx, 0x5000
cmp edi, ecx
cmovb edi, ecx
cmp edi, edx
jbe 0x4a4072
cmp eax, edx
jbe 0x4a4070
pop edi
pop esi
mov eax, 0xffffffc1
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, edx
mov ebx, dword [ebp + 0x1c]
cmp dword [ebx + 0x1c], edi
jae 0x4a40ac
push dword [ebx + 8]
mov eax, dword [ebx + 4]
push dword [ebx + 0x18]
call eax
push dword [ebx + 8]
mov eax, dword [ebx]
push edi
call eax
add esp, 0x10
mov dword [ebx + 0x18], eax
test eax, eax
jne 0x4a40a6
mov dword [ebx + 0x1c], eax
pop edi
pop esi
mov eax, 0xffffffd0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0x1c], edi
add eax, 0xffffffac
push eax
mov eax, dword [ebx + 0x18]
add eax, 0x54
push 0xff
push eax
call fcn.004a7d50
mov ecx, dword [ebp + 8]
add esp, 0xc
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x48]
mov dword [ebp - 0xc4], eax
lea edi, [eax + 0x100]
add eax, 0x340
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xbc], eax
test bl, 0x10
je 0x4a4182
movzx ecx, word [ecx + 0x58]
mov dword [ebp - 0x10], ecx
movzx eax, cx
movzx ecx, cx
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x20], ecx
test bl, 0x20
je 0x4a423e
mov edx, eax
mov eax, 0xff
cmp word [ebp - 0x10], ax
ja 0x4a4139
movzx ecx, byte [edx + edi]
mov eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x10], eax
cmp cx, 0x7f
jbe 0x4a423e
cmp dword [ebp - 8], 0
jne 0x4a414c
test dword [ebp - 0xc], 0x20000
je 0x4a423e
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x506e40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x50b240]
lea eax, [eax + eax*2]
mov ax, word [eax*4 + 0x502c34]
add ax, cx
mov ecx, dword [ebp + 8]
movzx eax, ax
mov dword [ebp - 0x10], eax
jmp 0x4a419b
cmp dword [ebp - 0xf0], 0
jne 0x4a4199
test bl, 0x40
je 0x4a4199
add ecx, 0x14
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp + 8]
xor eax, eax
movzx edx, ax
mov eax, dword [ebp - 0x20]
movzx eax, ax
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x104], eax
test bl, bl
jns 0x4a4249
movzx ecx, word [ecx + 0x5c]
mov dword [ebp - 0x14], ecx
movzx eax, cx
movzx ecx, cx
mov dword [ebp - 0xf4], 1
mov dword [ebp - 0x28], ecx
test ebx, 0x100
je 0x4a424d
mov edx, eax
mov eax, 0xff
cmp word [ebp - 0x14], ax
ja 0x4a41fc
movzx ecx, byte [edi + edx]
mov eax, ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x14], eax
cmp cx, 0x7f
jbe 0x4a424d
cmp dword [ebp - 8], 0
jne 0x4a420b
test dword [ebp - 0xc], 0x20000
je 0x4a424d
mov eax, edx
and edx, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x506e40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x50b240]
lea eax, [eax + eax*2]
mov ax, word [eax*4 + 0x502c34]
add ax, cx
movzx eax, ax
mov dword [ebp - 0x14], eax
jmp 0x4a4250
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
jmp 0x4a419b
xor eax, eax
jmp 0x4a4250
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
movzx ecx, ax
mov eax, dword [ebp - 0x28]
movzx eax, ax
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x110], eax
nop dword [eax + eax]
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0xd0], ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xc], edi
test dword [ebx + 0x40], 0x10000
jne 0x4a4799
cmp dword [ebp - 0x38], 0
je 0x4a43c7
mov edi, esi
cmp esi, edx
jae 0x4a43c2
mov edx, dword [ebp - 8]
test edx, edx
jne 0x4a42f0
mov esi, dword [ebp - 0x64]
mov ebx, dword [ebp - 4]
test esi, esi
je 0x4a4387
cmp edi, ecx
jae 0x4a437f
push edx
lea eax, [ebp - 0x60]
push eax
push ecx
push esi
push edi
call fcn.0048b2e0
mov esi, dword [ebp - 0x64]
add esp, 0x14
test eax, eax
je 0x4a437f
mov eax, 1
jmp 0x4a4381
mov edx, dword [ebp - 8]
nop dword [eax]
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a4322
cmp edi, ecx
jae 0x4a4316
push edx
lea edx, [ebp - 0x60]
push edx
push ecx
push eax
push edi
call fcn.0048b2e0
add esp, 0x14
test eax, eax
je 0x4a4316
mov eax, 1
jmp 0x4a4318
xor eax, eax
test eax, eax
jne 0x4a43c2
jmp 0x4a434a
mov edx, dword [ebp - 0x60]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x4a434a
mov ax, word [edi]
cmp ax, word [ebp - 0x5c]
jne 0x4a434a
cmp edx, 1
je 0x4a43c2
mov ax, word [edi + 2]
cmp ax, word [ebp - 0x5a]
je 0x4a43c2
mov edx, dword [ebp - 4]
add edi, 2
cmp edi, edx
jae 0x4a43c2
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
mov ecx, dword [ebp - 0x98]
jne 0x4a42e6
add edi, 2
cmp edi, edx
jae 0x4a43c2
jmp 0x4a42e6
xor eax, eax
test eax, eax
jne 0x4a43bf
jmp 0x4a43ab
mov edx, dword [ebp - 0x60]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x4a43ab
mov ax, word [edi]
cmp ax, word [ebp - 0x5c]
jne 0x4a43ab
cmp edx, 1
je 0x4a43bf
mov ax, word [edi + 2]
cmp ax, word [ebp - 0x5a]
je 0x4a43bf
mov ecx, dword [ebp - 0x98]
add edi, 2
mov edx, dword [ebp - 8]
cmp edi, ebx
jb 0x4a42b1
mov esi, dword [ebp - 0x1c]
mov edx, edi
mov dword [ebp - 4], edx
cmp dword [ebp - 0x24], 0
mov edi, dword [ebp - 0x18]
je 0x4a4437
mov ebx, dword [ebp - 0x2c]
test edi, edi
jne 0x4a43db
test ebx, ebx
je 0x4a442c
cmp esi, edx
sbb eax, eax
neg eax
cmp esi, edx
jae 0x4a4428
movzx eax, word [esi]
test edi, edi
je 0x4a43f8
cmp ax, word [ebp - 0x20]
je 0x4a442c
cmp ax, word [ebp - 0x10]
je 0x4a442c
test ebx, ebx
je case.0x4a483e.997
mov ecx, 0xff
cmp ax, cx
cmova eax, ecx
movzx edx, ax
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + ebx], al
mov eax, 0
setne al
test eax, eax
je case.0x4a483e.997
mov ebx, dword [ebp - 0x98]
jmp 0x4a46ef
test edi, edi
je 0x4a4505
cmp esi, edx
jae 0x4a447d
mov eax, dword [ebp - 0x104]
cmp ax, word [ebp - 0x108]
je 0x4a446e
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x10]
movzx eax, word [esi]
cmp ax, cx
je 0x4a447d
cmp ax, bx
je 0x4a447d
add esi, 2
cmp esi, edx
jb 0x4a4458
jmp 0x4a447d
mov eax, dword [ebp - 0x20]
cmp word [esi], ax
je 0x4a447d
add esi, 2
cmp esi, edx
jb 0x4a4471
cmp word [ebp - 0xb0], 0
mov ebx, dword [ebp - 0x98]
jne 0x4a46ef
cmp esi, ebx
jb 0x4a46ef
xor ebx, ebx
cmp dword [ebp - 8], 0
mov edx, dword [ebp - 4]
je 0x4a49f2
cmp edx, dword [ebp - 0x44]
je 0x4a49f2
test ebx, ebx
je 0x4a44be
cmp ebx, 0xfffffffe
jne 0x4a49f2
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 0x44]
lea esi, [edx + 2]
mov dword [ebp - 0x1c], esi
cmp esi, ebx
jae 0x4a44ed
mov ecx, 0xfc00
mov ax, word [esi]
and ax, cx
cmp ax, word [ebp - 0x30]
jne 0x4a4987
add esi, 2
mov dword [ebp - 0x1c], esi
cmp esi, ebx
jb 0x4a44d3
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x84]
mov byte [edi + 0x2c], 0
mov dword [edi + 0x14], eax
jmp 0x4a4ac6
cmp dword [ebp - 0xf0], 0
je 0x4a468b
mov eax, dword [ebp - 0x10c]
mov ebx, dword [ebp - 0xa0]
add eax, ebx
cmp esi, eax
jbe 0x4a442c
cmp esi, edx
jae 0x4a456f
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x4a4610
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a45ab
cmp esi, ebx
jbe 0x4a4563
push ecx
lea ecx, [ebp - 0x60]
push ecx
push ebx
push eax
push esi
call fcn.0048b3a0
mov ebx, dword [ebp - 0xa0]
add esp, 0x14
test eax, eax
je 0x4a4563
mov eax, 1
jmp 0x4a4565
xor eax, eax
test eax, eax
je 0x4a45d4
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 0x18]
cmp word [esi - 2], 0xd
jne 0x4a442c
mov eax, dword [ebp - 0x64]
cmp eax, 1
je 0x4a458b
cmp eax, 2
jne 0x4a442c
cmp esi, edx
jae 0x4a442c
cmp word [esi], 0xa
mov ebx, dword [ebp - 0x98]
jne 0x4a46ef
add esi, 2
jmp 0x4a46ef
mov edx, dword [ebp - 0x60]
lea edi, [edx + edx]
lea eax, [ebx + edi]
cmp esi, eax
jb 0x4a45d7
mov ecx, esi
sub ecx, edi
mov ax, word [ecx]
cmp ax, word [ebp - 0x5c]
jne 0x4a45d4
cmp edx, 1
je 0x4a4569
mov ax, word [ecx + 2]
cmp ax, word [ebp - 0x5a]
je 0x4a4569
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
add esi, 2
cmp esi, edx
jae 0x4a456c
mov ax, word [esi]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4a4537
add esi, 2
cmp esi, edx
jb 0x4a4537
jmp 0x4a456c
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a4648
cmp esi, ebx
jbe 0x4a463c
push ecx
lea ecx, [ebp - 0x60]
push ecx
push ebx
push eax
push esi
call fcn.0048b3a0
mov ebx, dword [ebp - 0xa0]
add esp, 0x14
test eax, eax
je 0x4a463c
mov eax, 1
jmp 0x4a463e
xor eax, eax
test eax, eax
jne 0x4a4569
jmp 0x4a4679
mov edx, dword [ebp - 0x60]
lea edi, [edx + edx]
lea eax, [ebx + edi]
cmp esi, eax
jb 0x4a467c
mov ecx, esi
sub ecx, edi
mov ax, word [ecx]
cmp ax, word [ebp - 0x5c]
jne 0x4a4679
cmp edx, 1
je 0x4a4569
mov ax, word [ecx + 2]
cmp ax, word [ebp - 0x5a]
je 0x4a4569
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
add esi, 2
cmp esi, edx
jb 0x4a4610
jmp 0x4a456c
mov edi, dword [ebp - 0x2c]
test edi, edi
je 0x4a46e6
cmp esi, edx
jae 0x4a46cc
mov ebx, dword [ebp - 4]
nop dword [eax]
movzx edx, word [esi]
mov eax, 0xff
cmp edx, 0xff
cmova edx, eax
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + edi], al
jne 0x4a46cc
add esi, 2
cmp esi, ebx
jb 0x4a46a0
cmp word [ebp - 0xb0], 0
mov ebx, dword [ebp - 0x98]
jne 0x4a46ec
cmp esi, ebx
jae case.0x4a483e.997
jmp 0x4a46ec
mov ebx, dword [ebp - 0x98]
mov edi, dword [ebp - 0x18]
cmp word [ebp - 0xb0], 0
mov edx, ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], edx
jne 0x4a4796
movzx eax, word [ebx + 0x66]
sub edx, esi
sar edx, 1
cmp edx, eax
jl case.0x4a483e.997
cmp dword [ebp - 0xf4], 0
lea ecx, [esi + edi*2]
je 0x4a4796
cmp ecx, dword [ebp - 0xf8]
jbe 0x4a4796
cmp edx, 0x7d0
jb 0x4a473f
cmp dword [ebp - 0x24], 0
jne 0x4a4796
cmp edx, 0x1e8480
jae 0x4a4796
mov edx, dword [ebp - 0x98]
cmp ecx, edx
jae case.0x4a483e.997
mov eax, dword [ebp - 0x110]
cmp ax, word [ebp - 0x48]
je 0x4a4845
mov ebx, edx
nop
movzx eax, word [ecx]
mov edi, ecx
add ecx, 2
mov edx, eax
cmp ax, word [ebp - 0x28]
je 0x4a477f
cmp dx, word [ebp - 0x14]
je 0x4a477f
cmp ecx, ebx
jb 0x4a4760
jmp case.0x4a483e.997
mov edx, dword [ebp - 0x98]
cmp edi, edx
jae case.0x4a483e.997
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xf8], edi
mov edi, dword [ebp - 0xc]
cmp esi, dword [ebp - 0xfc]
ja case.0x4a483e.997
or dword [ebp - 0x118], 1
mov eax, esi
sub eax, dword [ebp + 0xc]
sar eax, 1
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x34]
or eax, dword [ebp + 0x18]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0xec]
push eax
push dword [ebp + 0x1c]
movzx eax, word [ebx + 0x68]
push dword [ebp - 0x40]
mov dword [ebp - 0x90], esi
push eax
push dword [ebp - 0xa4]
mov dword [ebp - 0x8c], esi
push esi
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x6c], 0
call fcn.00498c20
add esp, 0x18
mov ebx, eax
cmp dword [ebp - 0xd0], 0
je 0x4a4825
test edi, edi
jne 0x4a4825
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x3c], esi
test ebx, ebx
jg case.default.0x4a483e
je case.0x4a483e.996
lea eax, [ebx + 0x3e5]
cmp eax, 4
ja case.default.0x4a483e
jmp dword [eax*4 + 0x4a4b50]
mov ebx, dword [ebp - 0x28]
mov ax, word [ecx]
mov edi, ecx
add ecx, 2
cmp ax, bx
je 0x4a4785
cmp ecx, edx
jb 0x4a4848
jmp case.0x4a483e.997
mov eax, dword [ebp - 0x6c]
mov edi, esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0x68], eax
jmp 0x4a48a9
mov edi, dword [ebp - 0x7c]
cmp edi, esi
jbe case.0x4a483e.996
mov edx, dword [ebp - 8]
jmp 0x4a48a9
mov edx, dword [ebp - 8]
lea edi, [esi + 2]
mov dword [ebp - 0x68], 0
test edx, edx
je 0x4a48a9
cmp edi, dword [ebp - 4]
jae 0x4a48a9
mov ax, word [edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4a48a9
add edi, 2
xor ebx, ebx
cmp dword [ebp - 0x38], ebx
je 0x4a4918
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a48e6
mov ecx, dword [ebp - 0x98]
cmp esi, ecx
jae 0x4a48da
push edx
lea edx, [ebp - 0x60]
push edx
push ecx
push eax
push esi
call fcn.0048b2e0
add esp, 0x14
test eax, eax
je 0x4a48da
lea eax, [ebx + 1]
jmp 0x4a48dc
xor eax, eax
test eax, eax
jne case.default.0x4a483e
jmp 0x4a4918
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x98]
lea ecx, [edx + edx]
sub eax, ecx
cmp esi, eax
ja 0x4a4918
mov ax, word [esi]
cmp ax, word [ebp - 0x5c]
jne 0x4a4918
cmp edx, 1
je case.default.0x4a483e
mov ax, word [esi + 2]
cmp ax, word [ebp - 0x5a]
je case.default.0x4a483e
mov esi, edi
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x24], ebx
jne case.default.0x4a483e
mov edx, dword [ebp - 4]
cmp edi, edx
ja case.default.0x4a483e
mov ebx, dword [ebp + 8]
cmp edi, dword [ebp - 0x114]
jbe 0x4a496f
cmp word [edi - 2], 0xd
jne 0x4a496f
cmp edi, edx
jae 0x4a496f
cmp word [edi], 0xa
jne 0x4a496f
test dword [ebx + 0x48], 0x800
jne 0x4a496f
mov eax, dword [ebp - 0x64]
cmp eax, 1
je 0x4a4969
cmp eax, 2
je 0x4a4969
cmp dword [ebp - 0x60], 2
jne 0x4a496f
lea esi, [edi + 2]
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x98]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x88], 0
jmp 0x4a4283
lea eax, [edi + 0x28]
mov dword [ebp - 0x9c], esi
push eax
mov eax, dword [ebp + 0x10]
mov ecx, esi
sub ecx, dword [ebp + 0xc]
sar ecx, 1
sub eax, ecx
push eax
push esi
call fcn.0048d430
add esp, 0xc
test eax, eax
je 0x4a49d9
mov edx, dword [ebp - 4]
jns 0x4a44c4
mov eax, dword [edi + 0x28]
lea edx, [esi + eax*2]
mov dword [ebp - 4], edx
mov ecx, edx
mov dword [ebp - 0x98], ecx
cmp edx, esi
jbe 0x4a44c4
mov dword [ebp - 0x34], 3
jmp 0x4a4270
mov edx, ebx
mov dword [ebp - 0x34], 1
mov ecx, ebx
mov dword [ebp - 4], edx
mov dword [ebp - 0x98], ecx
jmp 0x4a4270
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x88]
mov dword [edi + 0x14], eax
mov byte [edi + 0x2c], 0
cmp ebx, 1
jne 0x4a4ab4
movzx eax, word [edi + 0x2e]
mov ecx, dword [ebp - 0xb4]
add eax, eax
cmp ecx, eax
jl 0x4a4a25
xor eax, eax
jmp 0x4a4a2d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
inc eax
mov ebx, dword [ebp + 0xc]
sub esi, ebx
mov ecx, dword [ebp - 0x94]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x90]
sub eax, ebx
sar esi, 1
sar eax, 1
cmp dword [ebp - 0x8c], ecx
mov dword [edi + 0x28], esi
cmova ecx, dword [ebp - 0x8c]
sub ecx, ebx
mov dword [edi + 0x20], eax
sar ecx, 1
test dword [ebp + 0x18], 0x4000
mov dword [edi + 0x24], ecx
je 0x4a4aa7
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x100]
push dword [edi + 8]
lea esi, [esi + eax]
mov eax, dword [edi]
add esi, esi
push esi
call eax
add esp, 8
mov dword [edi + 0x10], eax
test eax, eax
je 0x4a409a
push esi
push ebx
push eax
call fcn.004a77d0
mov eax, dword [edi + 0x30]
add esp, 0xc
or byte [edi + 0x2d], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x30]
mov dword [edi + 0x10], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x84]
mov dword [edi + 0x14], eax
test ebx, ebx
je 0x4a4ac6
cmp ebx, 0xfffffffe
jne 0x4a4b05
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x4a4b02
mov eax, dword [ebp + 0xc]
sub ebx, eax
mov ecx, dword [ebp - 0xc]
sub edx, eax
sar ebx, 1
sub ecx, eax
mov dword [edi + 0x34], ebx
sar edx, 1
mov dword [edi + 0x28], ebx
mov ebx, 0xfffffffe
mov dword [edi + 0x10], eax
mov eax, ebx
sar ecx, 1
mov dword [edi + 0x38], edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
mov dword [edi + 0x30], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or ebx, 0xffffffff
mov dword [edi + 0x30], ebx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffd4
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffcd
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffde
pop ebx
mov esp, ebp
pop ebp
ret