Function at 0x4ea125
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x164
mov eax, dword [0x8870bc]
xor eax, esp
mov dword [esp + 0x160], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x108], eax
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x110], eax
mov eax, dword [ebp + 0x28]
movups xmm2, xmmword [0x845e10]
mov dword [esp + 0xf0], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x114], ebx
mov dword [esp + 0x54], eax
or eax, 0xffffffff
mov dword [esp + 0xac], eax
mov eax, dword [ecx]
mov dword [esp + 0xec], ecx
mov ecx, dword [ebx]
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x80], ebx
mov ebx, eax
shr ebx, 0x13
and ebx, 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x7c], ebx
mov ebx, eax
shr ebx, 0x12
and ebx, 1
shr eax, 3
mov esi, dword [ebp + 0x10]
mov dword [esp + 0xc8], ebx
xor ebx, 1
mov dword [esp + 0xcc], ebx
xor ebx, ebx
mov edi, 0xfffffffe
mov dword [esp + 0x118], esi
mov esi, dword [esi]
and eax, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x90], 0xfffffffe
mov dword [esp + 0x34], 0xfffffffe
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x88], eax
mov dword [esp + 0xfc], 1
mov dword [esp + 0xf4], 0x8a
mov dword [esp + 0xf8], 0x84
movaps xmmword [esp + 0xd0], xmm2
mov eax, dword [esi]
mov dword [esp + 0x40], ebx
mov ebx, eax
and ebx, 0xffff0000
mov dword [esp + 0x44], edi
cmp dword [esp + 0x54], 0
mov dword [esp + 0x3c], ebx
movzx edi, ax
je 0x4e99e1
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x28]
mov edx, dword [esp + 0x14]
lea ecx, [eax + ecx*2]
lea eax, [ecx - 0xc8]
cmp edx, eax
ja 0x4ec9c7
mov eax, dword [esp + 0xb8]
cmp edx, eax
cmovae eax, edx
mov dword [esp + 0x14], eax
mov ecx, eax
cmp ebx, 0x80340000
jb 0x4e9995
cmp ebx, 0x803f0000
jbe 0x4e99da
sub ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x54]
sar ecx, 1
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jb 0x4ecb71
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
cmp eax, 0x10000
ja 0x4ecb71
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb8], ecx
cmp ebx, 0x80340000
jb 0x4e99f1
cmp ebx, 0x803f0000
jbe 0x4e9a1d
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], ecx
test eax, eax
je 0x4e9a21
mov edx, dword [esp + 0xac]
mov ebx, 1
cmp dword [esp + 0xc4], 0
cmove edx, ebx
mov dword [esp + 0xac], edx
jmp 0x4e9a21
mov eax, dword [esp + 0x60]
xor ebx, ebx
mov dword [esp + 0x60], 0
xor edx, edx
cmp dword [esp + 0x3c], 0x80220000
ja 0x4eb328
mov eax, dword [esp + 0x3c]
cmp eax, 0x80220000
je 0x4eb30d
cmp eax, 0x800f0000
ja 0x4eaa9c
je 0x4eaa7d
cmp eax, 0x80070000
ja 0x4e9ca0
je 0x4e9b8c
cmp eax, 0x80030000
ja 0x4e9b02
je 0x4e9ab7
cmp eax, 0x80000000
je 0x4eca6a
cmp eax, 0x80010000
je 0x4eca6a
cmp eax, 0x80020000
jne 0x4eba06
mov esi, dword [esp + 0x14]
lea ebx, [edx + 1]
mov eax, dword [esp + 0x20]
mov ecx, 0x84
mov dword [esp + 0x28], 0x84
jmp 0x4eb3ff
mov edx, dword [esp + 0x20]
cmp edi, 0xa
jae 0x4e9ac8
lea esi, [edx + 0x2c]
lea esi, [esi + edi*4]
jmp 0x4e9acf
add esi, 4
mov dword [esp + 0x1c], esi
mov eax, dword [esi]
mov dword [esp + 0x70], eax
cmp edi, dword [edx + 0x74]
jbe 0x4eb17b
mov dword [edx + 0x54], eax
mov eax, dword [esp + 0x64]
mov dword [eax], 0x73
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
cmp eax, 0x80040000
je 0x4eb073
cmp eax, 0x80050000
je 0x4e9b80
cmp eax, 0x80060000
jne 0x4eba06
mov eax, 0x76
mov edx, dword [esp + 0x20]
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
movzx eax, word [eax + 4]
mov word [ecx + 2], ax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 8]
mov word [ecx + 4], ax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0xc]
mov word [ecx + 6], ax
mov esi, dword [esp + 0x1c]
movzx eax, byte [0x8608b6]
add esi, 0xc
add esi, 4
mov dword [esp + 0x1c], esi
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
jmp 0x4e9934
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x4eba11
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x4e9bbf
mov eax, dword [esi + 0xc]
add esi, 0x10
mov edx, dword [esp + 0x20]
add eax, 5
add dword [ebx], eax
add esi, 4
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov ecx, dword [esi + 0xc]
mov eax, 0x77
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
lea ebx, [edx + 0xa]
mov word [edx], ax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 4]
mov word [edx + 2], ax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 8]
mov word [edx + 4], ax
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov edi, dword [eax]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x70], edi
lea esi, [eax + edi*2]
movzx eax, word [esi]
add esi, 2
mov word [ebx], ax
mov edi, eax
add ebx, 2
mov eax, 0x7d
cmp edi, 0x7b
cmove edi, eax
mov eax, dword [esp + 0x70]
inc eax
dec ecx
mov word [edx + 8], ax
cmp ecx, 1
jbe 0x4e9c65
nop dword [eax]
movzx edx, word [esi]
cmp edx, edi
jne 0x4e9c4a
movzx eax, word [esi + 2]
cmp eax, edi
jne 0x4e9c4a
dec ecx
movzx eax, di
mov edx, 4
jmp 0x4e9c51
mov eax, edx
mov edx, 2
add esi, edx
mov word [ebx], ax
dec ecx
lea edx, [ebx + 2]
mov ebx, edx
cmp ecx, 1
ja 0x4e9c30
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
lea ecx, [ebx + 2]
movaps xmm2, xmmword [esp + 0xd0]
xor eax, eax
mov word [ebx], ax
lea eax, [ebx + 2]
mov ebx, dword [esp + 0x24]
sub eax, edx
sar eax, 1
mov word [edx + 6], ax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
cmp eax, 0x800b0000
ja 0x4e9d5a
je 0x4eaa13
cmp eax, 0x80080000
je 0x4e9d2e
cmp eax, 0x80090000
je 0x4e9ccf
cmp eax, 0x800a0000
je 0x4e9d70
jmp 0x4eba06
test dword [esp + 0x50], 0x400
je 0x4e9cf7
cmp dword [esp + 0x38], 0xfffffffe
jne 0x4e9cf0
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
mov ecx, 0x1c
jmp 0x4e9cfc
mov ecx, 0x1b
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov word [edx], cx
lea ecx, [edx + 2]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov esi, dword [esp + 0x20]
mov edx, 1
mov eax, dword [esp + 0x20]
mov ebx, edx
mov word [ecx + 4], di
mov ecx, 0x88
mov dword [esp + 0x28], 0x88
mov dword [esi + 0x78], edi
mov esi, dword [esp + 0x14]
jmp 0x4eb3ff
cmp eax, 0x800c0000
je 0x4eaa13
cmp eax, 0x800e0000
jne 0x4eba06
mov edi, dword [esi + 4]
xor edx, edx
cmp eax, 0x800e0000
mov dword [esp + 0x60], 1
sete dl
mov dword [esp + 0x74], edx
lea edx, [esi + 4]
cmp edi, 0x80000000
jae 0x4e9ee4
cmp dword [esi + 8], 0x800d0000
lea eax, [esi + 8]
jne 0x4e9ee0
cmp dword [esp + 0x3c], 0x800a0000
mov dword [esp + 0x1c], eax
je 0x4eba13
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
cmp ebx, 0xfffffffe
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x90], eax
mov eax, 0xffffffff
cmove ebx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x78], eax
test edx, edx
je 0x4e9e79
test bl, 8
je 0x4e9e7c
mov eax, edi
test eax, eax
jns 0x4e9e09
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x4e9e25
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x847d3b]
test al, al
je 0x4e9e79
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [ecx], 0x9000f
movzx eax, al
mov word [ecx + 4], ax
add ecx, 6
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
test bl, 8
mov eax, 0
setne al
add eax, 0x1f
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x14], ecx
test edx, edx
je 0x4e9ead
cmp edi, 0xffff
jbe 0x4e9ead
push ecx
push edi
call fcn.0051d5c0
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp 0x4e9eb5
mov word [ecx], di
mov eax, 1
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + eax*2]
mov edx, dword [esp + 0x20]
add esi, 4
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov eax, dword [esp + 0x3c]
cmp eax, 0x800a0000
jne 0x4e9fe6
cmp edi, 0x80000000
jae 0x4e9fe6
mov ebx, dword [esi + 8]
cmp ebx, 0x80000000
jae 0x4e9fe6
add esi, 0xc
cmp dword [esi], 0x800d0000
jne 0x4e9fe6
mov eax, edi
test eax, eax
jns 0x4e9f22
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x4e9f3e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
cmp byte [eax*4 + 0x847d3b], 0
jne 0x4e9fe2
cmp dword [esp + 0x7c], 0
je 0x4e9f70
cmp edi, 0x7f
jbe 0x4e9f70
mov eax, dword [eax*4 + 0x847d3c]
add eax, edi
jmp 0x4e9f83
cmp edi, 0xff
ja 0x4e9fe2
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
movzx eax, byte [eax + edi]
cmp edi, eax
je 0x4e9fe2
cmp ebx, eax
jne 0x4e9fe2
mov edx, dword [esp + 0x50]
mov ecx, edx
mov dword [esp + 0x1c], esi
and ecx, 8
jne 0x4e9fb0
mov dword [esp + 0xa8], 1
mov dword [esp + 0x88], 1
mov eax, edx
or eax, 8
test ecx, ecx
cmovne eax, edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
test edx, edx
je 0x4ebab3
lea eax, [esp + 0x13c]
push eax
push edi
call fcn.0051d5c0
add esp, 8
mov ebx, eax
jmp 0x4ebac0
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 6]
mov dword [esp + 0x1c], edx
xorps xmm0, xmm0
mov dword [esp + 0x30], eax
xor ebx, ebx
mov dword [esp + 0x44], 0
xor edi, edi
mov dword [esp + 0x28], ebx
movups xmmword [esp + 0x11c], xmm0
mov dword [esp + 0x58], ebx
movups xmmword [esp + 0x12c], xmm0
mov esi, dword [edx]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], ebx
cmp esi, 0x800d0000
je 0x4ea414
mov ecx, eax
nop dword [eax]
nop dword [eax + eax]
mov ebx, edi
cmp esi, 0x801c0000
je 0x4ea601
cmp esi, 0x801d0000
je 0x4ea601
cmp esi, 0x80050000
jne 0x4ea089
add edx, 4
mov dword [esp + 0x1c], edx
mov esi, dword [edx]
cmp esi, 0xd
je 0x4ea079
cmp esi, 0xa
jne 0x4ea584
mov ecx, dword [esp + 0x20]
or dword [ecx + 0x70], 0x800
jmp 0x4ea588
cmp esi, 0x80000000
jb 0x4ea06b
mov eax, esi
and eax, 0xffff0000
cmp eax, 0x80180000
jne 0x4ecb50
inc dword [esp + 0x2c]
movzx edi, si
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x4ea0b6.12
jmp dword [eax*4 + 0x4ecbb4]
mov esi, dword [esp + 0x80]
xor ecx, ecx
lea eax, [esi + 0x5f]
lea edx, [esi + 0x40]
lea esi, [esp + 0x11c]
cmp esi, eax
ja 0x4ea100
lea eax, [esp + 0x13b]
cmp eax, edx
jb 0x4ea100
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x11c], al
inc ecx
cmp ecx, 0x20
jl 0x4ea0e2
jmp 0x4ea3c9
movups xmm0, xmmword [esp + ecx + 0x11c]
movups xmm1, xmmword [edx + ecx]
por xmm1, xmm0
movups xmmword [esp + ecx + 0x11c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x4ea100
jmp 0x4ea3c9
mov esi, dword [esp + 0x80]
mov ebx, 1
xor ecx, ecx
mov dword [esp + 0x28], ebx
lea eax, [esi + 0x5f]
lea edx, [esi + 0x40]
lea esi, [esp + 0x11c]
cmp esi, eax
ja 0x4ea170
lea eax, [esp + 0x13b]
cmp eax, edx
jb 0x4ea170
mov al, byte [edx + ecx]
not al
or byte [esp + ecx + 0x11c], al
inc ecx
cmp ecx, 0x20
jl 0x4ea153
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d1
movups xmm1, xmmword [edx + ecx]
movups xmm0, xmmword [esp + ecx + 0x11c]
pandn xmm1, xmm2
por xmm1, xmm0
movups xmmword [esp + ecx + 0x11c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x4ea170
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d1
mov esi, dword [esp + 0x80]
xor ecx, ecx
lea eax, [esi + 0xbf]
lea edx, [esi + 0xa0]
lea esi, [esp + 0x11c]
cmp esi, eax
ja 0x4ea1f0
lea eax, [esp + 0x13b]
cmp eax, edx
jb 0x4ea1f0
nop dword [eax + eax]
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x11c], al
inc ecx
cmp ecx, 0x20
jl 0x4ea1d0
jmp 0x4ea3c9
movups xmm0, xmmword [esp + ecx + 0x11c]
movups xmm1, xmmword [edx + ecx]
por xmm1, xmm0
movups xmmword [esp + ecx + 0x11c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x4ea1f0
jmp 0x4ea3c9
mov ecx, dword [esp + 0x80]
lea esi, [esp + 0x11c]
mov ebx, 1
xor eax, eax
mov dword [esp + 0x28], ebx
lea edx, [ecx + 0xa0]
add ecx, 0xbf
cmp esi, ecx
ja 0x4ea270
lea ecx, [esp + 0x13b]
cmp ecx, edx
jb 0x4ea270
nop dword [eax]
mov cl, byte [edx + eax]
not cl
or byte [esp + eax + 0x11c], cl
inc eax
cmp eax, 0x20
jl 0x4ea250
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d1
movups xmm1, xmmword [edx + eax]
movups xmm0, xmmword [esp + eax + 0x11c]
pandn xmm1, xmm2
por xmm1, xmm0
movups xmmword [esp + eax + 0x11c], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x4ea270
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d1
mov esi, dword [esp + 0x80]
lea ecx, [esp + 0x11c]
xor edx, edx
lea eax, [esi + 0x1f]
cmp ecx, eax
ja 0x4ea2dc
lea eax, [esp + 0x13b]
cmp eax, esi
jb 0x4ea2dc
mov eax, ecx
sub esi, eax
lea ecx, [esp + 0x11c]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
or byte [ecx], al
cmp edx, 0x20
jl 0x4ea2c3
jmp 0x4ea3c9
mov ecx, esi
lea eax, [esp + 0x11c]
sub ecx, eax
nop word [eax + eax]
lea eax, [esp + 0x11c]
add eax, edx
add edx, 0x10
movups xmm0, xmmword [eax]
movups xmm1, xmmword [ecx + eax]
por xmm1, xmm0
movups xmmword [eax], xmm1
cmp edx, 0x20
jl 0x4ea2f0
jmp 0x4ea3c9
mov esi, dword [esp + 0x80]
lea ecx, [esp + 0x11c]
mov ebx, 1
xor edx, edx
mov dword [esp + 0x28], ebx
lea eax, [esi + 0x1f]
cmp ecx, eax
ja 0x4ea35f
lea eax, [esp + 0x13b]
cmp eax, esi
jb 0x4ea35f
mov eax, ecx
sub esi, eax
lea ecx, [esp + 0x11c]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
not al
or byte [ecx], al
cmp edx, 0x20
jl 0x4ea343
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d1
mov ecx, esi
lea eax, [esp + 0x11c]
sub ecx, eax
nop word [eax + eax]
lea eax, [esp + 0x11c]
add eax, edx
add edx, 0x10
movups xmm1, xmmword [ecx + eax]
movups xmm0, xmmword [eax]
pandn xmm1, xmm2
por xmm1, xmm0
movups xmmword [eax], xmm1
cmp edx, 0x20
jl 0x4ea370
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d1
push 0xffffffffffffffff
push 0x860930
push dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
and eax, 0xfffffff7
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x130]
push eax
call fcn.004e8e30
add esp, 0x18
movaps xmm2, xmmword [esp + 0xd0]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp eax, ecx
jbe 0x4ea3f7
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], 1
test edx, edx
je 0x4ea3f7
sub eax, ecx
mov dword [esp + 0x30], ecx
sar eax, 1
add dword [edx], eax
mov edx, dword [esp + 0x1c]
add edx, 4
mov dword [esp + 0x1c], edx
mov esi, dword [edx]
cmp esi, 0x800d0000
jne 0x4ea040
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov edx, 0xffffffff
cmp eax, 0xfffffffe
cmove eax, edx
cmp dword [esp + 0x58], 0
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], edx
mov dword [esp + 0x90], eax
je 0x4ea98a
mov eax, dword [esp + 0x50]
and eax, 0x20000
jne 0x4ea46d
cmp dword [esp + 0x40], eax
jne 0x4ea46d
test ebx, ebx
jne 0x4ea98a
cmp dword [esp + 0x44], 0
jne 0x4ea492
test ebx, ebx
je 0x4ea886
cmp dword [esp + 0x3c], 0x800e0000
je 0x4ea886
test eax, eax
jne 0x4ea886
mov eax, dword [esp + 0x30]
mov ecx, 2
mov word [eax], cx
mov eax, dword [esp + 0x30]
add eax, ecx
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x30], eax
je 0x4ea866
push eax
push 0x100
call fcn.0051d5c0
mov ecx, dword [esp + 0x38]
lea eax, [ecx + eax*2]
push eax
push 0x10ffff
mov dword [esp + 0x40], eax
call fcn.0051d5c0
mov ecx, dword [esp + 0x40]
add esp, 0x10
lea eax, [ecx + eax*2]
mov dword [esp + 0x30], eax
jmp 0x4ea886
push 0x860930
jmp 0x4ea4ff
push 0xffffffffffffffff
push 0x860980
jmp 0x4ea3a0
push 0x860980
push dword [esp + 0x24]
mov eax, dword [esp + 0x58]
and eax, 0xfffffff7
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.004e8eb0
add esp, 0x14
jmp 0x4ea3c1
lea eax, [edx + 4]
mov dword [esp + 0x40], 1
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov eax, dword [eax]
mov edx, eax
movzx esi, ax
mov eax, dword [esp + 0x30]
shr edx, 0x10
cmp edi, 0x10
mov edi, ebx
mov ebx, dword [esp + 0x28]
setne cl
mov dword [esp + 0x2c], edi
add ecx, 3
mov word [eax], cx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
add eax, 2
mov dword [esp + 0x30], eax
mov word [eax], dx
mov eax, dword [esp + 0x30]
add eax, 2
mov dword [esp + 0x30], eax
mov word [eax], si
add dword [esp + 0x30], 2
jmp 0x4ea3d5
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
cmp eax, 0x801f0000
je 0x4ea5a0
cmp eax, 0x801e0000
je 0x4ea5a0
push esi
jmp 0x4ea5cb
add edx, 8
mov dword [esp + 0x1c], edx
mov eax, dword [edx]
cmp eax, 0x80050000
jne 0x4ea5b9
lea eax, [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
cmp eax, 0xd
je 0x4ea5c3
cmp eax, 0xa
jne 0x4ea5ca
or dword [ecx + 0x70], 0x800
push eax
push esi
push ecx
push dword [esp + 0x5c]
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x130]
push eax
call fcn.004e8f70
movaps xmm2, xmmword [esp + 0xe8]
add esp, 0x18
mov ebx, dword [esp + 0x28]
add edi, eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], edi
jmp 0x4ea3d5
mov eax, dword [esp + 0x50]
xor ebx, ebx
cmp esi, 0x801d0000
sete bl
add edx, 4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ebx
mov edx, dword [edx]
test al, 8
je 0x4ea629
xor ecx, ecx
cmp edx, 2
cmovle edx, ecx
test eax, 0x20000
je 0x4ea69a
lea eax, [edx - 8]
cmp eax, 2
ja 0x4ea696
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp esi, 0x801d0000
sete cl
add ecx, 3
mov word [eax], cx
mov ecx, dword [esp + 0x30]
add ecx, 2
mov dword [esp + 0x30], ecx
cmp edx, 8
jne 0x4ea662
lea eax, [edx + 3]
jmp 0x4ea66d
xor eax, eax
cmp edx, 9
setne al
add eax, 0xc
mov word [ecx], ax
xor ecx, ecx
mov eax, dword [esp + 0x30]
add eax, 2
mov dword [esp + 0x40], 1
mov dword [esp + 0x30], eax
mov word [eax], cx
add dword [esp + 0x30], 2
mov ecx, dword [esp + 0x34]
jmp 0x4ea3d5
or dword [esp + 0x44], ebx
lea ecx, [edx + edx*2]
mov eax, dword [ecx*4 + 0x845bc0]
add eax, dword [esp + 0x80]
mov edi, dword [ecx*4 + 0x845bc8]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x14c], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [ecx*4 + 0x845bc4]
movups xmmword [esp + 0x15c], xmm0
test eax, eax
js 0x4ea7b4
mov ecx, dword [esp + 0x80]
lea ebx, [esp + 0x14c]
lea edx, [ecx + eax]
add eax, 0x1f
add eax, ecx
xor ecx, ecx
test edi, edi
js 0x4ea752
cmp ebx, eax
mov ebx, dword [esp + 0x28]
ja 0x4ea730
lea eax, [esp + 0x16b]
cmp eax, edx
jb 0x4ea730
nop word [eax + eax]
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x14c], al
inc ecx
cmp ecx, 0x20
jl 0x4ea710
jmp 0x4ea7b4
movups xmm0, xmmword [esp + ecx + 0x14c]
movups xmm1, xmmword [edx + ecx]
por xmm1, xmm0
movups xmmword [esp + ecx + 0x14c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x4ea730
jmp 0x4ea7b4
cmp ebx, eax
mov ebx, dword [esp + 0x28]
ja 0x4ea790
lea eax, [esp + 0x16b]
cmp eax, edx
jb 0x4ea790
nop word [eax + eax]
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x14c], al
inc ecx
cmp ecx, 0x20
jl 0x4ea770
jmp 0x4ea7b4
movups xmm1, xmmword [edx + ecx]
movups xmm0, xmmword [esp + ecx + 0x14c]
pandn xmm1, xmm2
pand xmm1, xmm0
movups xmmword [esp + ecx + 0x14c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x4ea790
mov eax, edi
neg eax
test edi, edi
cmovns eax, edi
cmp eax, 1
jne 0x4ea7cc
and byte [esp + 0x14d], 0xc3
jmp 0x4ea7d9
cmp eax, 2
jne 0x4ea7d9
and byte [esp + 0x157], 0x7f
xor eax, eax
cmp esi, 0x801d0000
jne 0x4ea830
nop dword [eax]
nop word [eax + eax]
movups xmm1, xmmword [esp + eax + 0x14c]
movups xmm0, xmmword [esp + eax + 0x11c]
pandn xmm1, xmm2
por xmm1, xmm0
movups xmmword [esp + eax + 0x11c], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x4ea7f0
mov ecx, dword [esp + 0x34]
mov edi, 1
mov dword [esp + 0x2c], edi
jmp 0x4ea3d5
movups xmm0, xmmword [esp + eax + 0x11c]
movups xmm1, xmmword [esp + eax + 0x14c]
por xmm1, xmm0
movups xmmword [esp + eax + 0x11c], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x4ea830
mov ecx, dword [esp + 0x34]
mov edi, 1
mov dword [esp + 0x2c], edi
jmp 0x4ea3d5
mov ecx, 0x100
mov word [eax], cx
mov ecx, 0xffff
mov eax, dword [esp + 0x30]
add eax, 2
mov dword [esp + 0x30], eax
mov word [eax], cx
add dword [esp + 0x30], 2
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov word [eax], cx
mov eax, 0x70
add dword [esp + 0x30], 2
mov word [ebx], ax
xor eax, eax
cmp esi, 0x800e0000
sete al
cmp dword [esp + 0x40], 0
movzx eax, ax
mov word [ebx + 4], ax
mov ecx, eax
je 0x4ea8c9
or eax, 4
mov word [ebx + 4], ax
movzx ecx, ax
test edi, edi
jle 0x4ea950
or ecx, 2
mov word [ebx + 4], cx
add ebx, 6
mov eax, dword [esp + 0x30]
sub eax, ebx
and eax, 0xfffffffe
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.00522f40
add esp, 0xc
cmp esi, 0x800e0000
jne 0x4ea930
cmp dword [esp + 0x40], 0
jne 0x4ea930
movaps xmm1, xmmword [esp + 0xd0]
xor eax, eax
nop dword [eax + eax]
movups xmm0, xmmword [esp + eax + 0x11c]
pandn xmm0, xmm1
movups xmmword [esp + eax + 0x11c], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x4ea910
nop dword [eax]
movups xmm0, xmmword [esp + 0x11c]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esp + 0x12c]
movups xmmword [ebx + 0x10], xmm0
mov ecx, dword [esp + 0x30]
add ecx, 0x20
jmp 0x4ea954
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x48]
mov eax, ecx
mov edx, dword [esp + 0x20]
sub eax, ebx
mov edi, dword [esp + 0x18]
movaps xmm2, xmmword [esp + 0xd0]
sar eax, 1
mov word [ebx + 2], ax
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
xor eax, eax
cmp dword [esp + 0x74], ebx
setne al
add eax, 0x6e
cmp dword [esp + 0x54], 0
mov word [ecx], ax
jne 0x4ea9e8
cmp dword [esp + 0x3c], 0x800e0000
jne 0x4ea9d0
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [esp + eax + 0x11c]
pandn xmm0, xmm2
movups xmmword [esp + eax + 0x11c], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x4ea9b0
nop dword [eax]
movups xmm0, xmmword [esp + 0x11c]
movups xmmword [ecx + 2], xmm0
movups xmm0, xmmword [esp + 0x12c]
movups xmmword [ecx + 0x12], xmm0
mov esi, dword [esp + 0x1c]
add ecx, 0x22
mov edx, dword [esp + 0x20]
add esi, 4
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
cmp dword [esp + 0x3c], 0x800c0000
mov edx, 0xd
mov edi, dword [esp + 0x38]
mov eax, 0xa2
mov ebx, dword [esp + 0x24]
cmove eax, edx
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
cmp edi, 0xfffffffe
mov eax, 0xffffffff
mov dword [esp + 0x60], 1
cmove edi, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x68]
add esi, 4
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov esi, dword [esp + 0x14]
mov ecx, 0x8a
mov eax, dword [esp + 0x20]
mov ebx, 1
mov dword [esp + 0x28], 0x8a
jmp 0x4eb3ff
cmp eax, 0x80170000
ja 0x4eae73
je 0x4eae03
cmp eax, 0x80130000
ja 0x4eab6a
je 0x4eac20
cmp eax, 0x80100000
je 0x4eab3d
cmp eax, 0x80110000
je 0x4eac20
cmp eax, 0x80120000
jne 0x4eba06
mov edi, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], 0x8a
mov edx, dword [esi]
lea eax, [esi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
cmp eax, dword [edi + 0x74]
ja 0x4ec9f0
cmp eax, dword [edi + 0x88]
jbe 0x4eab10
mov dword [edi + 0x88], eax
mov esi, dword [esp + 0x14]
sub edx, 2
mov dword [esp + 0x70], edx
mov edx, 0x90
mov word [ecx + 4], dx
mov edx, 2
mov word [ecx + 6], ax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
lea ebx, [edx - 1]
jmp 0x4eb3ff
add esi, 4
mov ecx, 0x8a
mov dword [esp + 0x1c], esi
mov edx, 1
mov eax, dword [esi]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov eax, 0xa7
mov word [esi + 4], ax
mov eax, dword [esp + 0x20]
jmp 0x4eb3fb
cmp eax, 0x80140000
je 0x4eac20
cmp eax, 0x80150000
je 0x4eabc7
cmp eax, 0x80160000
jne 0x4eba06
mov eax, dword [esp + 0x50]
and eax, 0x400
neg eax
sbb eax, eax
neg eax
add eax, 0x19
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
add esi, 4
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov ecx, 0x8a
mov dword [esp + 0x28], ecx
cmp dword [esi + 4], edx
jbe 0x4eabea
cmp dword [esi + 8], 0xa
jb 0x4eabe3
jne 0x4eabfb
cmp dword [esi + 0xc], 0x22
ja 0x4eabfb
mov eax, 0x95
jmp 0x4eac00
cmp dword [esi + 8], 0xa
jne 0x4eabfb
cmp dword [esi + 0xc], 0x22
mov eax, 0x95
je 0x4eac00
mov eax, 0x94
mov esi, dword [esp + 0x14]
mov edx, 1
movzx eax, ax
mov ebx, edx
mov word [esi + 4], ax
add dword [esp + 0x1c], 0xc
mov eax, dword [esp + 0x20]
jmp 0x4eb3ff
mov edx, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x1c], esi
lea eax, [esi + 4]
mov dword [esp + 0x28], 0x8a
mov ebx, dword [esi]
xor esi, esi
mov edi, dword [edx + 0x64]
mov dword [esp + 0x1c], eax
mov ecx, dword [eax]
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x70], ecx
lea ecx, [eax + ecx*2]
xor eax, eax
mov dword [esp + 0x8c], ecx
cmp ax, word [edx + 0x58]
jae 0x4eac93
nop dword [eax]
movzx eax, word [edi + 8]
cmp ebx, eax
jne 0x4eac87
push ebx
push dword [edi]
push ecx
call fcn.0051bc20
add esp, 0xc
test eax, eax
je 0x4ead20
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x20]
movzx eax, word [edx + 0x58]
inc esi
add edi, 0xc
cmp esi, eax
jl 0x4eac60
mov edi, dword [esp + 0x20]
movzx eax, word [edi + 0x58]
cmp esi, eax
jl 0x4ead7d
xor esi, esi
cmp dword [esp + 0x3c], 0x80140000
jne 0x4eca42
lea edx, [esi + 1]
cmp ebx, edx
jle 0x4eace3
mov edi, dword [esp + 0x8c]
movzx ecx, word [edi + edx*2]
lea esi, [esi + esi*4]
lea esi, [esi - 0x18]
lea esi, [ecx + esi*2]
cmp esi, 0xffff
ja 0x4eca14
inc edx
cmp edx, ebx
jl 0x4eacc1
mov edi, dword [esp + 0x20]
cmp esi, dword [edi + 0x74]
ja 0x4eca42
mov ecx, dword [esp + 0x14]
test esi, esi
mov eax, 0xffff
mov edx, 2
cmove esi, eax
mov eax, 0x92
mov word [ecx + 4], ax
mov eax, dword [esp + 0x20]
lea ebx, [edx - 1]
mov word [ecx + 6], si
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
jmp 0x4eb3ff
cmp word [edi + 0xa], 0
jne 0x4eac93
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x3c], 0x80130000
sete al
lea eax, [eax*2 + 0x90]
mov word [ecx + 4], ax
mov ax, word [edi + 4]
mov word [ecx + 6], ax
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x20]
cmp eax, dword [edi + 0x88]
jbe 0x4ead64
mov dword [edi + 0x88], eax
mov ecx, dword [esp + 0x28]
mov edx, 2
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
lea ebx, [edx - 1]
jmp 0x4eb3ff
mov esi, dword [esp + 0x14]
xor eax, eax
cmp dword [esp + 0x3c], 0x80130000
sete al
xor ecx, ecx
mov dword [esp + 0x44], ecx
lea eax, [eax*2 + 0x90]
mov word [esi + 4], ax
xor eax, eax
mov dword [esp + 0x40], eax
cmp dword [esp + 0x54], eax
jne 0x4eaddc
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x40]
push edi
mov edi, dword [esp + 0x90]
push ecx
push eax
lea eax, [esp + 0x50]
push eax
push ebx
push edi
call fcn.004ed130
add esp, 0x18
test eax, eax
je 0x4ecb9c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
mov edx, 3
mov esi, ebx
inc word [ebx + 4]
mov word [ebx + 6], cx
mov ecx, dword [esp + 0x28]
mov word [ebx + 8], ax
lea ebx, [edx - 2]
mov eax, dword [esp + 0x20]
jmp 0x4eb3ff
mov edi, dword [esp + 0x38]
mov eax, 0xffffffff
mov ebx, dword [esp + 0x24]
cmp edi, 0xfffffffe
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
cmove edi, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x50]
shr eax, 5
and eax, 1
mov dword [esp + 0x38], edi
or eax, 0xc
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x18]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x60], 1
mov dword [esp + 0x84], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
cmp eax, 0x801b0000
ja 0x4eb05d
je 0x4eb01a
cmp eax, 0x80180000
je 0x4eaebc
cmp eax, 0x80190000
je 0x4eca6a
cmp eax, 0x801a0000
jne 0x4eba06
mov esi, dword [esp + 0x14]
mov ecx, 0x86
mov eax, dword [esp + 0x20]
mov ebx, 1
mov dword [esp + 0x28], ecx
jmp 0x4eb3ff
mov ebx, dword [esp + 0x38]
cmp edi, 5
jbe 0x4eaee1
cmp edi, 0x17
jae 0x4eaee1
cmp ebx, 0xfffffffe
mov dword [esp + 0x60], 1
mov eax, 0xffffffff
cmove ebx, eax
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x90], eax
cmp edi, 0xf
je 0x4eaf7e
cmp edi, 0x10
je 0x4eaf7e
cmp edi, 0xe
jne 0x4eaf1f
mov eax, dword [esp + 0x20]
or dword [eax + 0x70], 0x400000
jmp 0x4eaf44
cmp edi, 5
je 0x4eaf2e
cmp edi, 4
je 0x4eaf2e
cmp edi, 1
jne 0x4eaf44
mov eax, dword [esp + 0x20]
cmp dword [eax + 0xa8], edx
jne 0x4eaf44
mov dword [eax + 0xa8], 1
cmp dword [esp + 0x7c], edx
jne 0x4eaf54
cmp edi, 0xe
jne 0x4eaf54
mov edi, 0xd
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], di
add ecx, 2
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
add esi, 4
mov dword [esp + 0x1c], esi
mov eax, dword [esi]
mov ecx, eax
shr ecx, 0x10
movzx edx, ax
cmp edi, 0x10
jne 0x4eafcb
test ecx, ecx
jne 0x4eafcb
mov ecx, dword [esp + 0x14]
mov eax, 0xd
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov ebx, dword [esp + 0x14]
xor eax, eax
movaps xmm2, xmmword [esp + 0xd0]
cmp edi, 0x10
mov edi, dword [esp + 0x18]
sete al
add eax, 0xf
mov word [ebx], ax
add ebx, 2
mov dword [esp + 0x14], ebx
mov word [ebx], cx
mov ecx, ebx
mov ebx, dword [esp + 0x24]
add ecx, 2
mov word [ecx], dx
add ecx, 2
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov eax, dword [esp + 0xec]
add esi, 4
mov dword [esp + 0x1c], esi
mov ebx, dword [esi]
mov dword [eax], ebx
mov eax, ebx
shr eax, 0x12
and eax, 1
mov dword [esp + 0x50], ebx
mov dword [esp + 0xc8], eax
xor eax, 1
mov dword [esp + 0xcc], eax
mov eax, ebx
shr eax, 3
and eax, 1
mov dword [esp + 0x88], eax
jmp 0x4eaba7
cmp eax, 0x80200000
je 0x4eb2a3
cmp eax, 0x80210000
jne 0x4eba06
mov edi, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x1c], esi
xor edx, edx
mov dword [esp + 0x44], edx
mov ecx, dword [esi]
lea eax, [esi + 4]
mov ebx, dword [edi + 0x64]
mov dword [esp + 0x1c], eax
mov esi, dword [eax]
mov eax, dword [edi + 0x1c]
xor edi, edi
mov dword [esp + 0x70], esi
mov dword [esp + 0x40], ecx
lea eax, [eax + esi*2]
xor esi, esi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x20]
cmp dx, word [eax + 0x58]
jae 0x4ecad0
nop word [eax + eax]
movzx eax, word [ebx + 8]
cmp ecx, eax
jne 0x4eb153
push ecx
push dword [ebx]
push dword [esp + 0x60]
call fcn.0051bc20
add esp, 0xc
test eax, eax
jne 0x4eb14b
cmp dword [esp + 0x3c], 0x80210000
movzx edx, word [ebx + 0xa]
mov edi, dword [ebx + 4]
mov dword [esp + 0x44], edx
je 0x4eb1ff
mov ecx, edi
mov eax, 1
shl eax, cl
cmp edi, 0x20
mov ecx, 1
cmovae eax, ecx
mov ecx, dword [esp + 0x20]
or dword [ecx + 0x8c], eax
cmp edi, dword [ecx + 0x88]
jbe 0x4eb124
mov dword [ecx + 0x88], edi
mov ecx, dword [ecx + 0x60]
test ecx, ecx
je 0x4eb14f
nop dword [eax + eax]
movzx eax, word [ecx + 4]
cmp eax, edi
je 0x4eb140
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4eb130
jmp 0x4eb14f
mov eax, 1
mov word [ecx + 6], ax
jmp 0x4eb14f
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
inc esi
add ebx, 0xc
movzx eax, word [eax + 0x58]
cmp esi, eax
jl 0x4eb0c0
test edi, edi
je 0x4ecacc
test edx, edx
jne 0x4eb21d
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x38], 0xfffffffe
jne 0x4eb192
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
test byte [esp + 0x50], 8
mov eax, 0
mov ecx, dword [esp + 0x14]
mov ebx, 1
setne al
add eax, 0x71
mov word [ecx], ax
mov eax, ebx
mov word [ecx + 2], di
add ecx, 4
mov dword [esp + 0x14], ecx
mov ecx, edi
shl eax, cl
cmp edi, 0x20
cmovae eax, ebx
or dword [edx + 0x8c], eax
cmp edi, dword [edx + 0x88]
jbe 0x4eb1d9
mov dword [edx + 0x88], edi
mov ecx, dword [edx + 0x60]
test ecx, ecx
je 0x4ebc25
movzx eax, word [ecx + 4]
cmp eax, edi
je 0x4eb20c
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4eb1e4
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x4eabab
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
jmp 0x4eb2bd
mov word [ecx + 6], bx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x4eabab
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x74], edx
cmp dword [esp + 0x54], ecx
jne 0x4eb264
push dword [esp + 0x20]
lea eax, [esp + 0x48]
push dword [esp + 0x68]
push eax
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x50]
push dword [esp + 0x6c]
call fcn.004ed130
add esp, 0x18
test eax, eax
je 0x4ecb9c
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x38]
mov eax, 0xffffffff
mov ebx, dword [esp + 0x14]
cmp edi, 0xfffffffe
cmove edi, eax
test byte [esp + 0x50], 8
mov eax, 0
mov dword [esp + 0x38], edi
setne al
add eax, 0x73
mov word [ebx], ax
mov word [ebx + 2], dx
add ebx, 4
mov dword [esp + 0x14], ebx
mov word [ebx], cx
mov ecx, ebx
jmp 0x4eab9c
mov edx, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x1c], esi
mov eax, dword [esi]
mov dword [esp + 0x70], eax
cmp edi, dword [edx + 0x74]
ja 0x4e9ade
mov eax, 0x75
mov dword [esp + 0x9c], 0
mov word [ecx], ax
mov eax, 0xffffffff
mov word [ecx + 2], di
add ecx, 4
mov edi, dword [esp + 0x38]
cmp edi, 0xfffffffe
mov esi, dword [esp + 0x1c]
cmove edi, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x68]
mov dword [edx + 0xb8], 1
mov dword [esp + 0x38], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x34], edi
jmp 0x4eabab
mov esi, dword [esp + 0x14]
mov ecx, 0x85
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x20]
mov ebx, 1
jmp 0x4eb3ff
mov edi, dword [esp + 0x3c]
cmp edi, 0x80310000
ja 0x4eb849
mov eax, edi
cmp eax, 0x80310000
je 0x4eb839
cmp eax, 0x802a0000
ja 0x4eb7b2
je 0x4eb705
cmp eax, 0x80260000
ja 0x4eb3c5
je 0x4eb3be
cmp eax, 0x80230000
je 0x4eb3b7
cmp eax, 0x80240000
je 0x4eb37f
cmp eax, 0x80250000
jne 0x4eba06
mov ecx, 0x80
jmp 0x4eb3ef
cmp dword [esi + 4], 0x80190000
jne 0x4eb3b0
mov eax, dword [esi + 8]
cmp eax, 0x80340000
jb 0x4eb399
cmp eax, 0x803f0000
jbe 0x4eb3b0
mov eax, 0xa2
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
jmp 0x4eaba3
mov ecx, 0x7f
jmp 0x4eb3ef
mov ecx, 0x7e
jmp 0x4eb3ef
mov ecx, 0x81
jmp 0x4eb3ef
cmp eax, 0x80270000
je 0x4eb3ea
cmp eax, 0x80280000
je 0x4eb3e3
cmp eax, 0x80290000
je 0x4eb8a4
jmp 0x4eba06
mov ecx, 0x83
jmp 0x4eb3ef
mov ecx, 0x82
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
inc word [eax + 0x5e]
mov dword [esp + 0x28], ecx
inc word [eax + 0x5c]
mov word [esi], cx
xor ecx, ecx
mov edi, dword [eax + 0xac]
lea eax, [esp + 0x94]
add dword [esp + 0x1c], 4
cmp dword [esp + 0x54], ecx
mov dword [esp + 0x4c], esi
cmove eax, ecx
mov dword [esp + 0x94], 0
push eax
push dword [esp + 0x24]
lea eax, [esp + 0xa8]
push dword [esp + 0xf8]
push eax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0xd8]
push eax
push edx
push dword [esp + 0x84]
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x74]
push eax
push dword [esp + 0x7c]
call fcn.004ecd00
add esp, 0x30
mov dword [esp + 0x8c], eax
test eax, eax
je 0x4ecb9c
mov edx, dword [esp + 0x20]
mov ecx, 0xffff
add word [edx + 0x5c], cx
test ebx, ebx
mov ebx, dword [esp + 0x28]
je 0x4eb4bd
cmp ebx, 0x8a
je 0x4eb4bd
mov ecx, dword [esp + 0x60]
test eax, eax
mov eax, 1
cmovg ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, 0xffff
lea eax, [ebx - 0x7e]
cmp eax, 5
ja 0x4eb4c9
add word [edx + 0x5e], cx
cmp ebx, 0x8a
jne 0x4eb5fa
cmp dword [esp + 0x54], 0
jne 0x4eb605
mov ecx, esi
xor edx, edx
movzx eax, word [ecx + 2]
mov esi, edx
lea ecx, [ecx + eax*2]
inc edx
cmp word [ecx], 0x79
jne 0x4eb4e4
mov ecx, dword [esp + 0x14]
mov eax, 0xa7
cmp word [ecx + 4], ax
jne 0x4eb51e
cmp esi, 1
jge 0x4ecaf8
mov eax, 0x94
mov word [ecx + 4], ax
mov ecx, dword [esp + 0x4c]
jmp 0x4eab9f
cmp esi, 2
jge 0x4ecb24
cmp edx, 1
jne 0x4eb549
mov edx, dword [esp + 0x4c]
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x14], edx
jmp 0x4eb581
cmp dword [esp + 0x8c], 0
mov edx, dword [esp + 0x20]
jle 0x4eb55f
mov dword [esp + 0x60], 1
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
cmp ebx, 0xa7
je 0x4ebc29
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
mov dword [esp + 0x9c], 0
cmp ebx, 0x84
jb 0x4eb6b3
cmp edx, 0xfffffffe
jne 0x4eb659
cmp ecx, edx
je 0x4eb659
test ecx, ecx
js 0x4eb647
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x68], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x9c], 1
mov dword [esp + 0x34], 0xffffffff
jmp 0x4eb67a
cmp dword [esp + 0x54], 0
je 0x4eb55f
mov ebx, dword [esp + 0x54]
mov ecx, 0x7fffffeb
mov esi, dword [esp + 0x94]
mov edx, dword [ebx]
sub ecx, edx
lea eax, [esi - 4]
cmp ecx, eax
jb 0x4ecb71
mov ecx, dword [esp + 0x14]
lea eax, [esi - 4]
add eax, edx
mov edx, 2
mov dword [ebx], eax
mov dword [ecx + 2], 0x790002
mov word [ecx + 6], dx
add ecx, 8
jmp 0x4eab9f
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
jmp 0x4eb67a
test ecx, ecx
js 0x4eb67a
test eax, eax
jns 0x4eb682
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xa4], eax
mov eax, ecx
or eax, edi
mov dword [esp + 0xa0], eax
test eax, eax
js 0x4ebc21
mov esi, dword [esp + 0x1c]
mov edi, eax
mov ebx, dword [esp + 0xa4]
add esi, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
jmp 0x4e9934
cmp ebx, 0x7e
je 0x4eb6c4
cmp ebx, 0x82
jne 0x4ebc21
test eax, eax
js 0x4ebc21
mov edx, dword [esp + 0x20]
test ecx, ecx
mov ecx, dword [esp + 0x14]
js 0x4ebc29
mov esi, dword [esp + 0x1c]
mov edi, eax
mov ebx, dword [esp + 0xa4]
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc4], 1
mov ecx, dword [edx + 0x60]
mov dword [edx + 0xb0], 1
test ecx, ecx
je 0x4eb761
mov ax, word [ecx + 8]
cmp ax, word [edx + 0x5e]
jb 0x4eb761
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4eb73c
add dword [eax], 3
jmp 0x4eb75b
mov edx, dword [esp + 0x14]
mov eax, 0xa5
mov word [edx], ax
mov ax, word [ecx + 4]
mov word [edx + 2], ax
add edx, 4
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4eb725
mov ecx, dword [esp + 0x14]
xor ax, ax
cmp ax, word [edx + 0x5e]
sbb eax, eax
neg eax
add eax, 0xa3
mov word [ecx], ax
add ecx, 2
cmp dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x14], ecx
jne 0x4ebc29
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
add esi, 4
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x1c], esi
jmp 0x4e9934
cmp eax, 0x802e0000
ja 0x4eb7d9
je 0x4eb7eb
cmp eax, 0x802b0000
je 0x4eb7fb
cmp eax, 0x802c0000
je 0x4eb7fb
cmp eax, 0x802d0000
je 0x4eb8a4
jmp 0x4eba06
cmp eax, 0x802f0000
je 0x4eb839
cmp eax, 0x80300000
jne 0x4eba06
mov edx, dword [esp + 0x20]
mov dword [edx + 0xb4], 1
jmp 0x4eb7ff
mov edx, dword [esp + 0x20]
add eax, 0x7fd70000
shr eax, 0x10
mov ax, word [eax*4 + 0x8459cc]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov esi, dword [esp + 0x20]
mov dword [esi + 0xb4], 1
jmp 0x4eb8a4
cmp edi, 0x80390000
ja 0x4eb9ba
je 0x4eb9ab
cmp edi, 0x80350000
ja 0x4eb98f
je 0x4eb889
cmp edi, 0x80320000
je 0x4eb97a
cmp edi, 0x80330000
je 0x4eb895
cmp edi, 0x80340000
jne 0x4eba02
xor ecx, ecx
mov edx, 0x10000
jmp 0x4ebc44
mov eax, dword [esp + 0x20]
or dword [eax + 0x70], 0x1000
mov eax, dword [esp + 0x3c]
add eax, 0x7fd70000
xor esi, esi
shr eax, 0x10
mov dword [esp + 0x40], esi
mov ax, word [eax*4 + 0x8459cc]
mov word [ecx], ax
add ecx, 2
mov eax, dword [esp + 0x1c]
mov edx, ecx
add eax, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
add edx, 2
mov dword [esp + 0x14], edx
mov ebx, dword [eax]
mov dword [esp + 0x4c], ecx
test ebx, ebx
jle 0x4eb96c
nop word [eax + eax]
add eax, 4
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x1c], eax
mov ecx, dword [eax]
je 0x4eb91d
lea eax, [esp + 0x13c]
push eax
push ecx
call fcn.0051d5c0
mov edx, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x24]
add esp, 8
jmp 0x4eb92a
mov edi, 1
mov word [esp + 0x13c], cx
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4eb936
add dword [ecx], edi
jmp 0x4eb963
lea esi, [edi + edi]
push esi
lea eax, [esp + 0x140]
push eax
push edx
call fcn.005229c0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x1c]
add edx, esi
mov esi, dword [esp + 0x40]
add esi, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], esi
sub ebx, 1
jne 0x4eb8f0
mov ecx, dword [esp + 0x4c]
mov word [ecx], si
xor eax, eax
mov ecx, dword [esp + 0x14]
jmp 0x4eab99
mov edx, dword [esp + 0x20]
mov eax, 0x9e
or dword [edx + 0x70], 0x1000
jmp 0x4eb80f
cmp edi, 0x80360000
je 0x4eb889
cmp edi, 0x80370000
je 0x4eb9ab
cmp edi, 0x80380000
jne 0x4eba02
mov ecx, 1
mov edx, 0x10000
jmp 0x4ebc44
cmp edi, 0x803d0000
ja 0x4eb9ea
je 0x4ebc32
cmp edi, 0x803a0000
je 0x4eb9e0
cmp edi, 0x803b0000
je 0x4eb9e0
cmp edi, 0x803c0000
jne 0x4eba02
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x4ebc44
cmp edi, 0x803e0000
je 0x4ebc32
cmp edi, 0x803f0000
je 0x4ebc32
mov eax, dword [esp + 0x3c]
cmp eax, 0x80000000
jae 0x4ecb50
mov edi, dword [esi]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x60], 1
test edx, edx
je 0x4ebab3
test byte [esp + 0x50], 8
je 0x4e9fc2
mov eax, edi
test eax, eax
jns 0x4eba3b
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x84aa30]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x4eba57
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x84ee30]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x847d3b]
test al, al
je 0x4e9fc2
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
movzx eax, al
mov dword [ecx], 0x90010
mov word [ecx + 4], ax
add ecx, 6
cmp dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x14], ecx
jne 0x4ebc29
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
jmp 0x4eabab
mov ebx, 1
mov word [esp + 0x13c], di
test byte [esp + 0x50], 8
lea esi, [ebx + ebx]
mov edi, dword [esp + 0x14]
mov eax, 0
setne al
add eax, 0x1d
push esi
mov word [edi], ax
lea eax, [esp + 0x140]
push eax
add edi, 2
push edi
call fcn.005229c0
mov ax, word [esp + 0x148]
add edi, esi
add esp, 0xc
mov dword [esp + 0x14], edi
cmp ax, 0xd
je 0x4ebb09
cmp ax, 0xa
jne 0x4ebb16
mov edx, dword [esp + 0x20]
or dword [edx + 0x70], 0x800
jmp 0x4ebb1a
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
cmp esi, 0xfffffffe
jne 0x4ebb72
mov dword [esp + 0x34], 0xffffffff
cmp ebx, 1
je 0x4ebb47
cmp dword [esp + 0x88], 0
je 0x4ebb47
or edi, 0xffffffff
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], edi
jmp 0x4ebba8
movzx eax, ax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x38], eax
cmp ebx, 1
je 0x4ebba4
movzx ebx, word [edi - 2]
mov edi, dword [edx + 0xac]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
jmp 0x4ebbac
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x34], esi
cmp ebx, 1
je 0x4ebb8e
test eax, eax
jne 0x4ebba4
movzx ebx, word [edi - 2]
mov edi, dword [edx + 0xac]
or edi, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
jmp 0x4ebbac
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0xa8], 0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], 1
mov dword [esp + 0x84], ecx
mov dword [esp + 0x90], eax
je 0x4ebc25
mov esi, dword [esp + 0x1c]
and dword [esp + 0x50], 0xfffffff7
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x60], 1
mov dword [esp + 0x90], eax
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
jmp 0x4eabab
add esi, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esi]
add esi, 4
mov dword [esp + 0x1c], esi
mov edx, dword [esi]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0xb0], ecx
test eax, eax
je 0x4ebc6e
mov eax, ebx
test ecx, ecx
mov ebx, 1
cmovne eax, ebx
mov dword [esp + 0x60], eax
xor ebx, ebx
mov eax, 2
cmp ecx, edx
cmove eax, ebx
test ecx, ecx
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x90]
cmovne eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
cmovne eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
cmovne eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
cmovne eax, dword [esp + 0x68]
mov dword [esp + 0x68], eax
cmp edi, 0x803b0000
ja 0x4ebcf9
je 0x4ebd1a
cmp edi, 0x80380000
ja 0x4ebcf1
je 0x4ebd1a
cmp edi, 0x80350000
je 0x4ebd1a
cmp edi, 0x80360000
jmp 0x4ebd0f
cmp edi, 0x80390000
jmp 0x4ebd0f
cmp edi, 0x803c0000
je 0x4ebd28
cmp edi, 0x803e0000
je 0x4ebd1a
cmp edi, 0x803f0000
je 0x4ebd28
mov eax, dword [esp + 0xc8]
jmp 0x4ebd2f
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x74], 1
jmp 0x4ebd37
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov ebx, eax
mov dword [esp + 0x4c], ebx
movzx edi, word [eax]
movzx ecx, di
add ecx, 0xffffffe3
mov dword [esp + 0x40], edi
cmp ecx, 0x85
ja case.0x4ebd61.33
movzx eax, byte [ecx + 0x4ecc0c]
jmp dword [eax*4 + 0x4ecbf4]
mov ebx, dword [esp + 0x28]
cmp ebx, 1
jne 0x4ebd7b
cmp dword [esp + 0x2c], ebx
je 0x4ec62d
cmp dword [esp + 0x7c], 0
mov edi, dword [ecx*4 + 0x886ec8]
je 0x4ebddb
mov eax, dword [esp + 0x14]
mov ecx, 0xfc00
mov ax, word [eax - 2]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x4ebddb
mov eax, dword [esp + 0x14]
lea ecx, [eax - 4]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x6c], eax
add eax, eax
push eax
push ecx
lea eax, [esp + 0x144]
push eax
call fcn.005229c0
mov eax, dword [esp + 0x64]
add esp, 0xc
mov edx, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
jmp 0x4ec6c6
cmp word [esp + 0x40], 0x1e
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], 1
movzx eax, word [eax - 2]
mov ecx, eax
mov word [esp + 0x13c], ax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
ja 0x4ec6c6
cmp dword [esp + 0x2c], 1
mov edx, dword [esp + 0x58]
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
jbe 0x4ec6c6
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0xac]
or eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
jmp 0x4ec6c6
test edx, edx
jne 0x4ebe67
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
jmp 0x4ec639
mov ecx, dword [esp + 0x2c]
cmp edx, 1
jne 0x4ebe88
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
cmp ecx, edx
je 0x4ebf3a
test ecx, ecx
jne 0x4ebea4
cmp edx, 0x10000
jne 0x4ebec5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
add eax, 0x62
mov word [ecx], ax
jmp 0x4ebf06
cmp ecx, 1
jne 0x4ebec1
cmp edx, 0x10000
jne 0x4ebeda
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
add eax, 0x64
mov word [ecx], ax
jmp 0x4ebf06
test ecx, ecx
jne 0x4ebeda
cmp edx, 1
jne 0x4ebeda
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
add eax, 0x66
mov word [ecx], ax
jmp 0x4ebf06
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
add eax, 0x68
mov word [ebx], ax
mov word [ebx + 2], cx
add ebx, 4
xor ecx, ecx
movzx eax, dx
cmp edx, 0x10000
mov dword [esp + 0x14], ebx
cmovne ecx, eax
mov word [ebx], cx
mov ecx, ebx
mov eax, dword [esp + 0x58]
add ecx, 2
mov edi, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
jmp 0x4ec4c3
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x14]
jmp 0x4ec639
mov edi, dword [esp + 0x2c]
cmp edx, 1
jne 0x4ebf6d
cmp edi, edx
jne 0x4ebf6d
cmp dword [esp + 0x74], 0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
je 0x4ec62d
jmp 0x4ebf86
test edi, edi
je 0x4ec021
cmp edi, 1
jne 0x4ebf86
cmp edx, 0x10000
je 0x4ec021
cmp edi, dword [esp + 0x28]
lea edx, [edi - 1]
mov ecx, dword [esp + 0x54]
cmovne edx, edi
test ecx, ecx
je 0x4ec078
lea edi, [edx + edx]
mov eax, edx
mov edx, 2
imul edx
test edx, edx
jg 0x4ecb71
jl 0x4ebfbd
cmp eax, 0x7fffffff
ja 0x4ecb71
mov ecx, dword [ecx]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edi
jb 0x4ecb71
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
cmp edi, edx
je 0x4ec4bf
sub edx, dword [esp + 0xb0]
cmp dword [esp + 0x98], 0x10000
mov dword [esp + 0x2c], 0
cmove edx, dword [esp + 0x98]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x48]
push 4
push ebx
lea eax, [ebx + 4]
push eax
call fcn.00522f40
mov eax, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x28]
add eax, 8
mov dword [ebx], 0x40086
mov dword [ebx + 8], 0x40079
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x40], 0x86
mov dword [esp + 0x14], eax
mov dword [esp + 0x94], 6
mov dword [esp + 0x8c], 0xffffffff
jmp 0x4ec0b7
test edx, edx
jle 0x4ebfdb
mov eax, dword [esp + 0x48]
mov ecx, edx
mov edi, dword [esp + 0x14]
mov eax, dword [eax]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
add ecx, 4
sub edx, 1
jne 0x4ec092
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
jmp 0x4ebfdf
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x48]
xor edi, edi
sar eax, 1
xor ecx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0xb0], edi
mov dword [esp + 0x44], ecx
cmp edx, 1
jne 0x4ec0f5
cmp dword [esp + 0x2c], edx
jne 0x4ec0f5
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x74], edi
je 0x4ec62d
mov ecx, dword [esp + 0x40]
cmp cx, word [esp + 0xf4]
jne 0x4ec147
mov ecx, dword [esp + 0x48]
mov eax, 0x94
cmp word [ecx + 4], ax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x6c]
jne 0x4ec180
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x48]
movzx eax, word [eax + 2]
cmp word [ecx + eax*2], 0x78
mov ecx, dword [esp + 0x6c]
jne 0x4ec62d
mov eax, dword [esp + 0x58]
jmp 0x4ec180
cmp cx, word [esp + 0xf8]
jae 0x4ec17c
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x2c], edi
ja 0x4ec62d
cmp edx, 1
cmova edx, dword [esp + 0xfc]
mov dword [esp + 0x28], edx
jmp 0x4ec180
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x98], edx
cmp dword [esp + 0x2c], edi
jne 0x4ec25f
cmp edx, 1
jbe 0x4ec1d6
cmp edx, 0x10000
je 0x4ec1d6
mov ebx, dword [esp + 0x48]
add eax, eax
push eax
push ebx
lea eax, [ebx + 6]
push eax
call fcn.00522f40
mov eax, dword [esp + 0x48]
lea ecx, [ebx + 6]
add dword [esp + 0x20], 6
lea edi, [ebx + 4]
add esp, 0xc
mov dword [esp + 0x48], ecx
add eax, 0x96
mov word [ebx], ax
mov dword [ebx + 2], 0x86
jmp 0x4ec230
mov ebx, dword [esp + 0x48]
add eax, eax
push eax
push ebx
lea esi, [ebx + 2]
push esi
call fcn.00522f40
mov ecx, dword [esp + 0x20]
add esp, 0xc
add ecx, 2
mov dword [esp + 0x48], esi
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x28], edi
jne 0x4ec220
mov edi, dword [esp + 0x6c]
mov eax, 0xa6
mov word [ebx], ax
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edi
jmp 0x4ec639
mov eax, dword [esp + 0x3c]
add eax, 0x96
mov dword [esp + 0x44], ebx
mov word [ebx], ax
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x98]
cmp eax, 0x10000
lea edx, [eax - 1]
cmove edx, eax
jmp 0x4ec373
cmp dword [esp + 0x2c], 1
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
jbe 0x4ec361
cmp dword [esp + 0x54], edi
je 0x4ec2e5
mov eax, dword [esp + 0x2c]
dec eax
mov edx, eax
imul edx, dword [esp + 0x94]
mov dword [esp + 0x98], edx
mul dword [esp + 0x94]
test edx, edx
jg 0x4ecb71
jl 0x4ec2ae
cmp eax, 0x7fffffff
ja 0x4ecb71
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x98]
mov ecx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jb 0x4ecb71
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
jmp 0x4ec35d
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x9c], edi
je 0x4ec322
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
test ecx, ecx
jns 0x4ec322
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
jbe 0x4ec365
mov edi, dword [esp + 0x14]
lea esi, [eax + eax]
lea ebx, [ecx - 1]
push esi
push dword [esp + 0x4c]
push edi
call fcn.005229c0
add esp, 0xc
add edi, esi
sub ebx, 1
jne 0x4ec335
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xb0]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
cmp edx, 0x10000
je 0x4ec4eb
sub edx, ecx
cmp edx, 0x10000
je 0x4ec4eb
cmp dword [esp + 0x54], 0
je 0x4ec404
test edx, edx
je 0x4ec404
mov eax, dword [esp + 0x94]
add eax, 5
mov ecx, eax
imul ecx, edx
mul edx
sub ecx, 4
test edx, edx
jg 0x4ecb71
jl 0x4ec3b7
cmp eax, 0x7fffffff
ja 0x4ecb71
mov eax, dword [esp + 0x54]
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jb 0x4ecb71
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
test edi, edi
je 0x4ec4bf
mov ebx, dword [esp + 0x14]
sub ecx, edi
sar ecx, 1
mov edx, ebx
inc ecx
lea eax, [ecx + ecx]
sub edx, eax
movzx eax, word [edx + 2]
test eax, eax
jne 0x4ec488
xor edi, edi
jmp 0x4ec48d
lea eax, [edx - 1]
mov dword [esp + 0x40], eax
test eax, eax
js 0x4ec3d5
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
add ebx, 0x96
mov ecx, dword [esp + 0x14]
add esi, esi
mov word [ecx], bx
add ecx, 2
mov dword [esp + 0x14], ecx
test eax, eax
je 0x4ec456
mov eax, 0x86
mov word [ecx], ax
test edi, edi
jne 0x4ec441
xor eax, eax
jmp 0x4ec448
lea eax, [ecx + 2]
sub eax, edi
sar eax, 1
lea edi, [ecx + 2]
mov word [ecx + 2], ax
add ecx, 4
mov dword [esp + 0x14], ecx
push esi
push dword [esp + 0x4c]
push ecx
call fcn.005229c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x40]
add ecx, esi
sub eax, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x40], eax
jns 0x4ec423
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
jmp 0x4ec3d9
neg eax
lea edi, [edi + eax*2]
mov eax, 0x79
mov word [ebx], ax
add ebx, 2
movzx eax, cx
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x14], ecx
mov word [edx + 2], ax
test edi, edi
jne 0x4ec3e1
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x74], 0
je 0x4ec635
movzx ecx, word [ebx]
lea eax, [ecx - 0x1d]
cmp eax, 0x53
ja case.0x4ec4e4.33
movzx eax, byte [eax + 0x4ecca8]
jmp dword [eax*4 + 0x4ecc94]
mov ecx, dword [esp + 0x14]
mov ebx, 0x84
movzx eax, word [ecx - 2]
lea esi, [ecx - 4]
add eax, eax
mov edi, esi
sub edi, eax
movzx eax, word [edi]
mov edx, eax
cmp ax, bx
jne 0x4ec523
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4ec65e
mov eax, 0x86
mov word [edi], ax
mov edx, eax
jmp 0x4ec535
mov eax, 0x85
cmp dx, ax
je 0x4ec65e
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x54], 0
movzx ecx, dx
jne 0x4ec579
cmp dword [esp + 0x8c], 0
movzx eax, dx
jge 0x4ec555
lea eax, [edx + 5]
mov word [edi], ax
movzx eax, ax
mov edx, 0x8a
movzx ecx, ax
cmp ax, dx
jne 0x4ec57e
movzx eax, word [edi + 2]
mov ecx, edx
cmp word [edi + eax*2], 0x78
lea eax, [edx + 5]
je 0x4ec583
mov word [edi], ax
mov ecx, eax
jmp 0x4ec583
mov edx, 0x8a
mov eax, 0x8f
test ebx, ebx
je 0x4ec61f
cmp cx, dx
je 0x4ec5a9
cmp cx, ax
je 0x4ec5a9
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x14]
mov word [edi], ax
mov eax, 0x7c
mov word [esi], ax
jmp 0x4ec5fc
mov esi, dword [esp + 0x14]
sub esi, edi
sar esi, 1
lea eax, [esi + esi]
push eax
lea eax, [edi + 4]
push edi
push eax
call fcn.00522f40
mov ecx, dword [esp + 0x20]
mov edx, 0x8a
add esp, 0xc
mov eax, 0x8c
cmp word [edi], dx
mov edx, 0x87
cmove eax, edx
mov word [edi], ax
mov eax, 0x7c
mov word [ecx + 4], ax
lea eax, [esi + 2]
movzx eax, ax
mov word [ecx + 6], ax
add ecx, 8
mov dword [esp + 0x14], ecx
mov word [edi + 2], ax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4ec60c
mov edx, 0x98
mov word [eax], dx
xor eax, eax
cmp dword [esp + 0x2c], 2
cmovae eax, ebx
mov dword [esp + 0x74], eax
jmp 0x4ec4b7
mov eax, dword [esp + 0x3c]
add eax, 0x7a
mov word [esi], ax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x100]
movaps xmm2, xmmword [esp + 0xd0]
or dword [edx + 0xac], eax
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x4e9934
mov eax, dword [esp + 0x3c]
add eax, 0x7a
mov word [esi], ax
jmp 0x4ec4b7
cmp edi, 0x17
jae 0x4ecb92
mov ebx, dword [esp + 0x28]
cmp ebx, 1
jne 0x4ec699
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edi
cmp dword [esp + 0x2c], ebx
je 0x4ec9be
mov eax, dword [esp + 0x40]
mov edi, 0x34
mov edx, dword [esp + 0x44]
mov dword [esp + 0x6c], 0
cmp ax, 0x10
je 0x4ec6df
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], edx
cmp ax, 0xf
je 0x4ec6df
mov eax, dword [esp + 0x48]
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
lea ecx, [eax + 2]
jmp 0x4ec709
mov ecx, dword [esp + 0x48]
add ecx, 2
mov dword [esp + 0x18], edx
movzx eax, word [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x4ec62d
mov eax, dword [esp + 0x3c]
add eax, edi
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x3c], eax
jne 0x4ec771
mov edx, dword [esp + 0x48]
movzx eax, ax
cmp ebx, 0x10000
jne 0x4ec748
add eax, 0x21
mov dword [esp + 0x14], ecx
mov word [edx], ax
jmp 0x4ec871
cmp ebx, 1
jne 0x4ec75c
add eax, 0x25
mov dword [esp + 0x14], ecx
mov word [edx], ax
jmp 0x4ec871
add eax, 0x27
mov word [edx], ax
mov word [ecx], bx
add ecx, 2
mov dword [esp + 0x14], ecx
jmp 0x4ec871
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
jne 0x4ec7c4
cmp ebx, 0x10000
jne 0x4ec79a
mov esi, dword [esp + 0x48]
add eax, 0x23
mov ecx, esi
add ecx, 2
mov dword [esp + 0x14], ecx
mov word [esi], ax
jmp 0x4ec871
mov ecx, edx
mov dword [esp + 0x14], ecx
cmp ebx, 1
je 0x4ec631
add eax, 0x27
lea ecx, [edx + 2]
mov word [edx], ax
lea eax, [ebx - 1]
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x14], ecx
jmp 0x4ec871
mov edx, dword [esp + 0x48]
lea eax, [edi + 0x29]
lea edi, [edx + 2]
mov word [edx], ax
mov word [edi], cx
add edi, 2
mov dword [esp + 0x14], edi
cmp ebx, ecx
je 0x4ec86d
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4ec824
lea esi, [eax + eax]
push esi
lea eax, [esp + 0x140]
push eax
push edi
call fcn.005229c0
add esp, 0xc
add edi, esi
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
lea ecx, [edi + 2]
movzx eax, ax
cmp ebx, 0x10000
jne 0x4ec846
add eax, 0x21
mov dword [esp + 0x14], ecx
mov word [edi], ax
jmp 0x4ec875
mov eax, dword [esp + 0x40]
mov word [edi], ax
add edi, 2
mov eax, dword [esp + 0x44]
test eax, eax
js 0x4ec802
mov edx, dword [esp + 0x5c]
mov word [edi], ax
mov word [edi + 2], dx
add edi, 4
jmp 0x4ec806
sub ebx, dword [esp + 0x2c]
cmp ebx, 1
jne 0x4ec85b
add eax, 0x25
mov dword [esp + 0x14], ecx
mov word [edi], ax
jmp 0x4ec875
add eax, 0x27
mov word [edi], ax
mov word [ecx], bx
add ecx, 2
mov dword [esp + 0x14], ecx
jmp 0x4ec875
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4ec8a1
lea esi, [eax + eax]
push esi
lea eax, [esp + 0x140]
push eax
push ecx
call fcn.005229c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
add ecx, esi
mov dword [esp + 0x14], ecx
jmp 0x4ec4b7
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov word [ecx], ax
add ecx, 2
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], ecx
test eax, eax
js 0x4ebf1d
mov word [ecx], ax
mov word [ecx + 2], dx
add ecx, 4
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
jmp 0x4ec4c3
movzx eax, word [ebx + 4]
cmp eax, 0x10
je 0x4ec8f5
cmp eax, 0xf
je 0x4ec8f5
movzx eax, byte [ecx + 0x860840]
xor edx, edx
add eax, edx
jmp 0x4ec93e
movzx eax, byte [ecx + 0x860840]
mov edx, 2
add eax, edx
jmp 0x4ec93e
cmp dword [esp + 0x7c], 0
movzx eax, byte [ecx + 0x860840]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x4c], ebx
je case.0x4ec4e4.33
mov ax, word [ebx - 2]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xd800
cmp ax, cx
jne case.0x4ec4e4.33
add ebx, 2
jmp 0x4ec941
add ebx, 0x22
jmp 0x4ec941
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*2]
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x14]
mov eax, ecx
sub eax, ebx
mov edi, eax
sar edi, 1
test edi, edi
jle 0x4ec631
movzx ecx, word [ebx]
cmp ecx, 0x76
jae 0x4ec976
mov cl, byte [ecx + 0x845c68]
test cl, cl
je 0x4ec976
movzx eax, cl
mov word [ebx], ax
jmp 0x4ec629
and eax, 0xfffffffe
push eax
lea eax, [ebx + 4]
push ebx
push eax
call fcn.00522f40
mov eax, dword [esp + 0x58]
mov ecx, 0x84
mov edx, dword [esp + 0x20]
add esp, 0xc
mov word [eax], cx
mov eax, 0x79
mov word [edx + 4], ax
lea eax, [edi + 2]
movzx ecx, ax
mov word [edx + 6], cx
add edx, 8
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], edx
mov word [eax + 2], cx
jmp 0x4ec629
mov ecx, dword [esp + 0x14]
jmp 0x4ec635
cmp edx, ecx
mov ecx, dword [esp + 0x64]
sbb eax, eax
and eax, 0x22
add eax, 0x98
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
mov dword [eax], 0x73
xor eax, eax
mov dword [edi + 0x54], edx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
mov dword [eax], 0xa1
mov eax, dword [esp + 0x70]
add eax, edx
mov dword [esi + 0x54], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
mov dword [eax], 0x73
mov eax, dword [esp + 0x70]
mov dword [edi + 0x54], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x68]
mov dword [edx], eax
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0x38]
mov dword [edx], eax
mov edx, dword [esp + 0x10c]
mov eax, dword [esp + 0x24]
mov dword [edx], eax
mov edx, dword [esp + 0x110]
mov eax, dword [esp + 0x18]
mov dword [edx], eax
mov eax, dword [esp + 0x114]
mov dword [eax], ecx
mov eax, dword [esp + 0x118]
mov dword [eax], esi
mov eax, dword [esp + 0xac]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x64]
mov dword [ecx], 0x73
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x54], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x54], ecx
mov eax, dword [esp + 0x64]
mov dword [eax], 0x9a
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x54], ecx
mov eax, dword [esp + 0x64]
mov dword [eax], 0x7f
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
mov dword [eax], 0xbd
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
mov dword [eax], 0x78
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x160]
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x64]
mov dword [eax], 0x6e
mov ecx, dword [esp + 0x16c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00520afb
mov esp, ebp
pop ebp
ret