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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x154
mov eax, dword [0x732480]
xor eax, esp
mov dword [esp + 0x150], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xf4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xf8], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xfc], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x100], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0xe8], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x48], eax
or eax, 0xffffffff
mov dword [esp + 0xac], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x88], eax
movups xmm2, xmmword [0x6d61f0]
mov ebx, dword [ecx]
mov eax, ebx
shr eax, 0x13
and eax, 1
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x84], eax
mov eax, ebx
shr eax, 0x11
and eax, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0xb0], eax
mov eax, ebx
shr eax, 0x12
and eax, 1
mov dword [esp + 0x90], 0
mov dword [esp + 0xc8], eax
xor eax, 1
mov esi, dword [ebp + 0x10]
mov dword [esp + 0xcc], eax
mov eax, ebx
mov edi, dword [ebp + 0xc]
shr eax, 3
mov dword [esp + 0x108], esi
and eax, 1
mov esi, dword [esi]
mov ecx, dword [edi]
mov dword [esp + 0x104], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x8c], eax
mov dword [esp + 0xec], 0x8a
mov dword [esp + 0xf0], 0x84
movaps xmmword [esp + 0xd0], xmm2
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xffff0000
movzx edi, ax
cmp dword [esp + 0x48], 0
mov dword [esp + 0x28], ebx
je 0x51512b
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x28]
mov edx, dword [esp + 0x18]
lea ecx, [eax + ecx*2]
lea eax, [ecx - 0xc8]
cmp edx, eax
ja 0x5180c2
mov ecx, edx
cmp ecx, dword [esp + 0xbc]
cmovb ecx, dword [esp + 0xbc]
mov dword [esp + 0x18], ecx
cmp ebx, 0x80340000
jb 0x5150df
cmp ebx, 0x803f0000
jbe 0x515124
sub ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x48]
sar ecx, 1
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jb 0x51826c
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x48]
mov dword [ecx], eax
cmp eax, 0x10000
ja 0x51826c
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xbc], ecx
cmp ebx, 0x80340000
jb 0x51513b
cmp ebx, 0x803f0000
jbe 0x515167
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x51516b
mov edx, dword [esp + 0xac]
mov ebx, 1
cmp dword [esp + 0xc4], 0
cmove edx, ebx
mov dword [esp + 0xac], edx
jmp 0x51516b
mov eax, dword [esp + 0x4c]
xor ebx, ebx
mov dword [esp + 0x4c], 0
xor edx, edx
cmp dword [esp + 0x28], 0x80220000
ja 0x516a2d
mov eax, dword [esp + 0x28]
cmp eax, 0x80220000
je 0x516a14
cmp eax, 0x800f0000
ja 0x5161bf
mov ebx, eax
cmp ebx, 0x800f0000
je 0x5161a6
cmp ebx, 0x80070000
ja 0x5153d9
je 0x5152d8
cmp ebx, 0x80030000
ja 0x515253
je 0x515208
cmp ebx, 0x80000000
je 0x518165
cmp ebx, 0x80010000
je 0x518165
cmp ebx, 0x80020000
jne 0x517284
mov ecx, dword [esp + 0x20]
lea ebx, [edx + 1]
mov eax, 0x84
mov dword [esp + 0x34], eax
mov edi, eax
jmp 0x516b3b
mov edx, dword [esp + 0x20]
cmp edi, 0xa
jae 0x515219
lea esi, [edx + 0x2c]
lea esi, [esi + edi*4]
jmp 0x515220
add esi, 4
mov dword [esp + 0x1c], esi
mov eax, dword [esi]
mov dword [esp + 0x70], eax
cmp edi, dword [edx + 0x74]
jbe 0x516872
mov dword [edx + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [eax], 0x73
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
cmp ebx, 0x80040000
je 0x5167a1
cmp ebx, 0x80050000
je 0x5152cc
cmp ebx, 0x80060000
jne 0x516b06
mov eax, 0x76
mov edx, dword [esp + 0x20]
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
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 [0x6f42c6]
add esi, 0xc
add esi, 4
mov dword [esp + 0x1c], esi
lea ecx, [ecx + eax*2]
mov dword [esp + 0x18], ecx
jmp 0x515083
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x517290
mov edi, dword [esp + 0x48]
test edi, edi
je 0x515303
mov eax, dword [esi + 0xc]
add esi, 0x10
mov edx, dword [esp + 0x20]
add eax, 5
add dword [edi], eax
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edi, dword [esp + 0x18]
mov eax, 0x77
mov esi, dword [esi + 0xc]
mov ebx, dword [esp + 0x20]
mov word [edi], ax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 4]
mov word [edi + 2], ax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 8]
mov word [edi + 4], ax
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov edx, dword [eax]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x70], edx
lea edx, [eax + edx*2]
movzx eax, word [edx]
add edx, 2
mov word [ecx + 0xa], ax
mov ebx, eax
add ecx, 0xc
mov eax, 0x7d
cmp ebx, 0x7b
mov dword [esp + 0x38], ecx
cmove ebx, eax
mov eax, dword [esp + 0x70]
inc eax
dec esi
mov word [edi + 8], ax
cmp esi, 1
jbe 0x5153a7
movzx edi, word [edx]
cmp edi, ebx
jne 0x51538a
movzx eax, word [edx + 2]
cmp eax, ebx
jne 0x51538a
add edx, 4
movzx eax, bx
dec esi
jmp 0x51538f
add edx, 2
mov eax, edi
mov edi, dword [esp + 0x38]
dec esi
mov word [edi], ax
lea ecx, [edi + 2]
mov dword [esp + 0x38], ecx
cmp esi, 1
ja 0x515372
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
xor eax, eax
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov eax, ecx
mov dword [esp + 0x18], ecx
sub eax, edi
sar eax, 1
mov word [edi + 6], ax
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp ebx, 0x800b0000
ja 0x5154a7
je 0x516146
cmp ebx, 0x80080000
je 0x515481
cmp ebx, 0x80090000
je 0x51540a
cmp ebx, 0x800a0000
jmp 0x5154b9
test dword [esp + 0x44], 0x400
je 0x515456
cmp dword [esp + 0x2c], 0xffffffff
jne 0x51542b
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x64], 0xfffffffe
mov edx, dword [esp + 0x20]
mov eax, 0x1c
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edx, dword [esp + 0x20]
mov eax, 0x1b
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ebx, dword [esp + 0x20]
mov eax, 0x88
mov word [ecx + 4], di
mov edx, 1
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [ebx + 0x78], edi
mov ebx, edx
mov edi, eax
jmp 0x516b3b
cmp ebx, 0x800c0000
je 0x516146
cmp ebx, 0x800e0000
jne 0x516b06
mov edi, dword [esi + 4]
xor eax, eax
cmp ebx, 0x800e0000
mov dword [esp + 0x4c], 1
lea ebx, [esi + 4]
sete al
mov dword [esp + 0x30], ebx
mov dword [esp + 0x74], eax
cmp edi, 0x80000000
jae 0x515652
cmp dword [esi + 8], 0x800d0000
lea eax, [esi + 8]
jne 0x515652
cmp dword [esp + 0x28], 0x800a0000
mov dword [esp + 0x1c], eax
je 0x517292
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x2c]
cmp ebx, 0xffffffff
mov edx, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], eax
mov eax, 0xfffffffe
cmove ebx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], ebx
test edx, edx
jne 0x515554
cmp dword [esp + 0xb0], edx
je 0x5155ce
mov ebx, dword [esp + 0x44]
test bl, 8
je 0x5155d5
mov eax, edi
test eax, eax
jns 0x515566
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x6dcaf8]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x515582
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6e0ef8]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6d88eb]
test al, al
je 0x5155d2
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [ecx], 0xa000f
movzx eax, al
mov word [ecx + 4], ax
add ecx, 6
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ebx, dword [esp + 0x44]
test bl, 8
mov eax, 0
setne al
add eax, 0x1f
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x18], ecx
test edx, edx
je 0x515627
cmp edi, 0xffff
jbe 0x515627
push ecx
push edi
call fcn.0054eb50
mov ecx, dword [esp + 0x20]
add esp, 8
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
lea ecx, [ecx + eax*2]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
jmp 0x515083
mov edx, dword [esp + 0x20]
mov eax, 1
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], di
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + eax*2]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp dword [esp + 0x28], 0x800a0000
jne 0x51573c
cmp edi, 0x80000000
jae 0x51573c
mov edx, dword [esi + 8]
cmp edx, 0x80000000
jae 0x51573c
add esi, 0xc
cmp dword [esi], 0x800d0000
jne 0x51573c
mov eax, edi
test eax, eax
jns 0x515693
add eax, 0x7f
sar eax, 7
movzx ecx, word [eax*2 + 0x6dcaf8]
mov eax, edi
shl ecx, 7
and eax, 0x8000007f
jns 0x5156af
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x6e0ef8]
lea eax, [eax + eax*2]
cmp byte [eax*4 + 0x6d88eb], 0
jne 0x515738
mov ecx, dword [esp + 0x84]
test ecx, ecx
jne 0x5156da
cmp dword [esp + 0xb0], ecx
je 0x5156ea
cmp edi, 0x7f
jbe 0x5156ea
mov eax, dword [eax*4 + 0x6d88ec]
add eax, edi
jmp 0x5156fd
cmp edi, 0xff
ja 0x515738
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
movzx eax, byte [eax + edi]
cmp edi, eax
je 0x515738
cmp edx, eax
jne 0x515738
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x1c], esi
test bl, 8
jne 0x517336
or ebx, 8
mov dword [esp + 0xb4], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x8c], 1
jmp 0x517336
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 6]
mov dword [esp + 0x1c], ebx
xorps xmm0, xmm0
mov dword [esp + 0x24], eax
xor edx, edx
mov dword [esp + 0x58], 0
movups xmmword [esp + 0x10c], xmm0
xor esi, esi
mov dword [esp + 0x54], edx
movups xmmword [esp + 0x11c], xmm0
mov edi, dword [ebx]
mov dword [esp + 0x34], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0x60], edx
cmp edi, 0x800d0000
je 0x515a70
mov eax, ebx
mov ecx, ebx
mov edx, ebx
nop dword [eax]
mov ebx, esi
cmp edi, 0x801c0000
je 0x515d5d
cmp edi, 0x801d0000
je 0x515d5d
cmp edi, 0x80050000
jne 0x5157c0
lea ecx, [eax + 4]
mov dword [esp + 0x1c], ecx
mov edi, dword [ecx]
jmp 0x515cd5
cmp edi, 0x80000000
jb 0x515cd1
mov eax, edi
and eax, 0xffff0000
cmp eax, 0x80180000
jne 0x516b06
movzx edi, di
inc esi
mov dword [esp + 0x38], esi
lea eax, [edi - 6]
cmp eax, 0xf
ja case.0x5157f2.12
jmp dword [eax*4 + 0x5182b0]
mov edi, dword [esp + 0x88]
lea ebx, [esp + 0x10c]
xor ecx, ecx
lea eax, [edi + 0x5f]
lea edx, [edi + 0x40]
cmp ebx, eax
ja 0x515840
lea eax, [esp + 0x12b]
cmp eax, edx
jb 0x515840
nop
mov al, byte [ecx + edi + 0x40]
or byte [esp + ecx + 0x10c], al
inc ecx
cmp ecx, 0x20
jl 0x515820
jmp case.0x5157f2.12
movups xmm1, xmmword [edx + ecx]
movups xmm0, xmmword [esp + ecx + 0x10c]
orps xmm1, xmm0
movups xmmword [esp + ecx + 0x10c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x515840
jmp case.0x5157f2.12
mov edi, dword [esp + 0x88]
lea ebx, [esp + 0x10c]
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x54], eax
lea eax, [edi + 0x5f]
lea edx, [edi + 0x40]
cmp ebx, eax
ja 0x5158b0
lea eax, [esp + 0x12b]
cmp eax, edx
jb 0x5158b0
mov al, byte [ecx + edi + 0x40]
not al
or byte [esp + ecx + 0x10c], al
inc ecx
cmp ecx, 0x20
jl 0x515892
jmp case.0x5157f2.12
movups xmm1, xmmword [edx + ecx]
movups xmm0, xmmword [esp + ecx + 0x10c]
andnps xmm1, xmm2
orps xmm1, xmm0
movups xmmword [esp + ecx + 0x10c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x5158b0
jmp case.0x5157f2.12
mov edi, dword [esp + 0x88]
lea ebx, [esp + 0x10c]
xor ecx, ecx
lea eax, [edi + 0xbf]
lea edx, [edi + 0xa0]
cmp ebx, eax
ja 0x515930
lea eax, [esp + 0x12b]
cmp eax, edx
jb 0x515930
nop dword [eax]
nop word [eax + eax]
mov al, byte [ecx + edi + 0xa0]
or byte [esp + ecx + 0x10c], al
inc ecx
cmp ecx, 0x20
jl 0x515910
jmp case.0x5157f2.12
movups xmm1, xmmword [edx + ecx]
movups xmm0, xmmword [esp + ecx + 0x10c]
orps xmm1, xmm0
movups xmmword [esp + ecx + 0x10c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x515930
jmp case.0x5157f2.12
mov edi, dword [esp + 0x88]
lea ebx, [esp + 0x10c]
mov eax, 1
mov dword [esp + 0x54], eax
xor eax, eax
lea ecx, [edi + 0xbf]
lea edx, [edi + 0xa0]
cmp ebx, ecx
ja 0x5159b0
lea ecx, [esp + 0x12b]
cmp ecx, edx
jb 0x5159b0
nop dword [eax + eax]
mov cl, byte [eax + edi + 0xa0]
not cl
or byte [esp + eax + 0x10c], cl
inc eax
cmp eax, 0x20
jl 0x515990
jmp case.0x5157f2.12
movups xmm1, xmmword [edx + eax]
movups xmm0, xmmword [esp + eax + 0x10c]
andnps xmm1, xmm2
orps xmm1, xmm0
movups xmmword [esp + eax + 0x10c], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x5159b0
jmp case.0x5157f2.12
mov edi, dword [esp + 0x88]
lea ecx, [esp + 0x10c]
xor edx, edx
lea eax, [edi + 0x1f]
cmp ecx, eax
ja 0x515b43
lea eax, [esp + 0x12b]
cmp eax, edi
jb 0x515b43
mov esi, edi
mov eax, ecx
sub esi, eax
lea ecx, [esp + 0x10c]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
or byte [ecx], al
cmp edx, 0x20
jl 0x515a04
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa0]
cmp eax, ecx
jbe 0x515a49
mov edx, dword [esp + 0x48]
mov dword [esp + 0x34], 1
test edx, edx
je 0x515a49
sub eax, ecx
mov dword [esp + 0x24], ecx
sar eax, 1
add dword [edx], eax
add ebx, 4
mov eax, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], ebx
mov ecx, eax
mov edx, eax
mov edi, dword [ebx]
cmp edi, 0x800d0000
jne 0x515790
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov eax, 0xfffffffe
mov ebx, dword [esp + 0x50]
cmp edi, 0xffffffff
mov dword [esp + 0x80], ebx
cmove edi, eax
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edi
je 0x5160cd
mov eax, dword [esp + 0x44]
and eax, 0x20000
jne 0x515ac6
cmp dword [esp + 0x60], eax
jne 0x515ac6
test edx, edx
jne 0x5160cd
cmp dword [esp + 0x58], 0
jne 0x515aeb
test edx, edx
je 0x515fdd
cmp dword [esp + 0x28], 0x800e0000
je 0x515fdd
test eax, eax
jne 0x515fdd
mov eax, dword [esp + 0x24]
mov ecx, 2
mov word [eax], cx
mov eax, dword [esp + 0x24]
add eax, ecx
cmp dword [esp + 0x84], 0
mov dword [esp + 0x24], eax
je 0x515fbd
push eax
push 0x100
call fcn.0054eb50
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + eax*2]
push eax
push 0x10ffff
mov dword [esp + 0x34], eax
call fcn.0054eb50
mov ecx, dword [esp + 0x34]
add esp, 0x10
lea eax, [ecx + eax*2]
mov dword [esp + 0x24], eax
jmp 0x515fdd
mov ecx, edi
lea eax, [esp + 0x10c]
sub ecx, eax
nop
lea eax, [esp + 0x10c]
add eax, edx
add edx, 0x10
movups xmm1, xmmword [eax + ecx]
movups xmm0, xmmword [eax]
orps xmm1, xmm0
movups xmmword [eax], xmm1
cmp edx, 0x20
jl 0x515b50
jmp case.0x5157f2.12
mov edi, dword [esp + 0x88]
lea ecx, [esp + 0x10c]
mov eax, 1
xor edx, edx
mov dword [esp + 0x54], eax
lea eax, [edi + 0x1f]
cmp ecx, eax
ja 0x515bbf
lea eax, [esp + 0x12b]
cmp eax, edi
jb 0x515bbf
mov esi, edi
mov eax, ecx
sub esi, eax
lea ecx, [esp + 0x10c]
add ecx, edx
inc edx
mov al, byte [esi + ecx]
not al
or byte [ecx], al
cmp edx, 0x20
jl 0x515ba4
jmp 0x515a18
mov ecx, edi
lea eax, [esp + 0x10c]
sub ecx, eax
nop word [eax + eax]
lea eax, [esp + 0x10c]
add eax, edx
add edx, 0x10
movups xmm1, xmmword [eax + ecx]
movups xmm0, xmmword [eax]
andnps xmm1, xmm2
orps xmm1, xmm0
movups xmmword [eax], xmm1
cmp edx, 0x20
jl 0x515bd0
jmp case.0x5157f2.12
push 0xffffffffffffffff
push 0x6f4340
push dword [esp + 0x28]
mov eax, dword [esp + 0x50]
and eax, 0xfffffff7
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.00514560
mov ebx, dword [esp + 0x34]
add esp, 0x18
movaps xmm2, xmmword [esp + 0xd0]
jmp 0x515a20
push 0x6f4340
push dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
and eax, 0xfffffff7
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.005145e0
mov ebx, dword [esp + 0x30]
add esp, 0x14
movaps xmm2, xmmword [esp + 0xd0]
jmp 0x515a20
push 0xffffffffffffffff
push 0x6f4390
jmp 0x515bfd
push 0x6f4390
jmp 0x515c34
mov eax, dword [esp + 0x30]
xor ecx, ecx
add eax, 4
mov dword [esp + 0x60], 1
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov edx, eax
movzx esi, ax
mov eax, dword [esp + 0x24]
shr edx, 0x10
cmp edi, 0x10
setne cl
add ecx, 3
mov word [eax], cx
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x24], eax
mov word [eax], dx
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x24], eax
mov word [eax], si
mov esi, ebx
add dword [esp + 0x24], 2
mov ebx, dword [esp + 0x1c]
jmp 0x515a20
mov ecx, dword [esp + 0x30]
cmp edi, 0xd
je 0x515cdf
cmp edi, 0xa
jne 0x515cec
mov edx, dword [esp + 0x20]
or dword [edx + 0x70], 0x800
jmp 0x515cf0
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
cmp eax, 0x801f0000
je 0x515d04
cmp eax, 0x801e0000
je 0x515d04
push edi
jmp 0x515d2f
add ecx, 8
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx]
cmp eax, 0x80050000
jne 0x515d1d
lea eax, [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
cmp eax, 0xd
je 0x515d27
cmp eax, 0xa
jne 0x515d2e
or dword [edx + 0x70], 0x800
push eax
push edi
push edx
push dword [esp + 0x50]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.005146b0
mov ebx, dword [esp + 0x34]
add esp, 0x18
movaps xmm2, xmmword [esp + 0xd0]
add esi, eax
jmp 0x515a20
xor eax, eax
mov ebx, edx
cmp edi, 0x801d0000
sete al
cmp edi, 0x801c0000
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x44]
cmove ebx, ecx
add ebx, 4
mov dword [esp + 0x1c], ebx
mov edx, dword [ebx]
test al, 8
je 0x515d90
xor ecx, ecx
cmp edx, 2
cmovle edx, ecx
test eax, 0x20000
je 0x515dbc
mov eax, edx
sub eax, 8
je 0x515e55
sub eax, 1
je 0x515e55
sub eax, 1
je 0x515e55
mov eax, dword [esp + 0x54]
or dword [esp + 0x58], eax
lea ecx, [edx + edx*2]
mov eax, dword [ecx*4 + 0x6d5f70]
add eax, dword [esp + 0x88]
mov esi, dword [ecx*4 + 0x6d5f78]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x13c], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [ecx*4 + 0x6d5f74]
movups xmmword [esp + 0x14c], xmm0
test eax, eax
js 0x515f34
mov ecx, dword [esp + 0x88]
lea edx, [ecx + eax]
add eax, 0x1f
add eax, ecx
mov dword [esp + 0x38], edx
xor ecx, ecx
lea edx, [esp + 0x13c]
test esi, esi
js 0x515ee1
cmp edx, eax
mov edx, dword [esp + 0x38]
ja 0x515ec0
lea eax, [esp + 0x15b]
cmp eax, edx
jb 0x515ec0
nop dword [eax]
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x13c], al
inc ecx
cmp ecx, 0x20
jl 0x515e40
jmp 0x515f3a
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp edi, 0x801d0000
sete cl
add ecx, 3
mov word [eax], cx
mov ecx, dword [esp + 0x24]
add ecx, 2
mov dword [esp + 0x24], ecx
cmp edx, 8
jne 0x515e7f
lea eax, [edx + 6]
jmp 0x515e8a
xor eax, eax
cmp edx, 9
setne al
add eax, 0xf
mov word [ecx], ax
xor ecx, ecx
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x60], 1
mov dword [esp + 0x24], eax
mov word [eax], cx
add dword [esp + 0x24], 2
mov ebx, dword [esp + 0x1c]
jmp 0x515a20
movups xmm0, xmmword [esp + ecx + 0x13c]
movups xmm1, xmmword [edx + ecx]
orps xmm1, xmm0
movups xmmword [esp + ecx + 0x13c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x515ec0
jmp 0x515f3a
cmp edx, eax
mov edx, dword [esp + 0x38]
ja 0x515f10
lea eax, [esp + 0x15b]
cmp eax, edx
jb 0x515f10
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x13c], al
inc ecx
cmp ecx, 0x20
jl 0x515ef4
jmp 0x515f38
movups xmm1, xmmword [edx + ecx]
movups xmm0, xmmword [esp + ecx + 0x13c]
andnps xmm1, xmm2
andps xmm1, xmm0
movups xmmword [esp + ecx + 0x13c], xmm1
add ecx, 0x10
cmp ecx, 0x20
jl 0x515f10
jmp 0x515f38
test esi, esi
jns 0x515f3a
neg esi
cmp esi, 1
jne 0x515f49
and byte [esp + 0x13d], 0xc3
jmp 0x515f56
cmp esi, 2
jne 0x515f56
and byte [esp + 0x147], 0x7f
xor eax, eax
cmp edi, 0x801d0000
jne 0x515f90
movups xmm1, xmmword [esp + eax + 0x13c]
movups xmm0, xmmword [esp + eax + 0x10c]
andnps xmm1, xmm2
orps xmm1, xmm0
movups xmmword [esp + eax + 0x10c], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x515f60
mov esi, 1
jmp 0x515a20
movups xmm0, xmmword [esp + eax + 0x10c]
movups xmm1, xmmword [esp + eax + 0x13c]
orps xmm1, xmm0
movups xmmword [esp + eax + 0x10c], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x515f90
mov esi, 1
jmp 0x515a20
mov ecx, 0x100
mov word [eax], cx
mov ecx, 0xffff
mov eax, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x24], eax
mov word [eax], cx
add dword [esp + 0x24], 2
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
mov word [eax], cx
mov eax, 0x70
add dword [esp + 0x24], 2
mov word [ebx], ax
xor eax, eax
cmp edi, 0x800e0000
sete al
cmp dword [esp + 0x60], 0
movzx eax, ax
mov word [ebx + 4], ax
mov ecx, eax
je 0x516020
or eax, 4
mov word [ebx + 4], ax
movzx ecx, ax
test esi, esi
jle 0x51609b
or ecx, 2
mov word [ebx + 4], cx
add ebx, 6
mov eax, dword [esp + 0x24]
sub eax, ebx
and eax, 0xfffffffe
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.00554ff0
add esp, 0xc
cmp edi, 0x800e0000
jne 0x51607b
cmp dword [esp + 0x60], 0
jne 0x51607b
movaps xmm1, xmmword [esp + 0xd0]
xor eax, eax
nop
movups xmm0, xmmword [esp + eax + 0x10c]
andnps xmm0, xmm1
movups xmmword [esp + eax + 0x10c], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x516060
movups xmm0, xmmword [esp + 0x10c]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esp + 0x11c]
movups xmmword [ebx + 0x10], xmm0
mov ecx, dword [esp + 0x24]
add ecx, 0x20
jmp 0x51609f
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
mov eax, ecx
mov edx, dword [esp + 0x20]
sub eax, ebx
movaps xmm2, xmmword [esp + 0xd0]
sar eax, 1
mov word [ebx + 2], ax
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
xor eax, eax
cmp dword [esp + 0x74], edx
setne al
add eax, 0x6e
cmp dword [esp + 0x48], 0
mov word [ecx], ax
jne 0x516123
cmp dword [esp + 0x28], 0x800e0000
jne 0x51610b
xor eax, eax
nop
movups xmm0, xmmword [esp + eax + 0x10c]
andnps xmm0, xmm2
movups xmmword [esp + eax + 0x10c], xmm0
add eax, 0x10
cmp eax, 0x20
jl 0x5160f0
movups xmm0, xmmword [esp + 0x10c]
movups xmmword [ecx + 2], xmm0
movups xmm0, xmmword [esp + 0x11c]
movups xmmword [ecx + 0x12], xmm0
mov esi, dword [esp + 0x1c]
add ecx, 0x22
mov edx, dword [esp + 0x20]
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edi, dword [esp + 0x2c]
cmp ebx, 0x800c0000
movaps xmm2, xmmword [esp + 0xd0]
mov edx, 0xd
mov eax, 0xa2
mov dword [esp + 0x4c], 1
cmove eax, edx
mov edx, dword [esp + 0x20]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
cmp edi, 0xffffffff
mov eax, 0xfffffffe
mov dword [esp + 0x18], ecx
cmove edi, eax
mov eax, dword [esp + 0x6c]
add esi, 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ecx, dword [esp + 0x20]
mov eax, 0x8a
mov dword [esp + 0x34], eax
mov ebx, 1
mov edi, eax
jmp 0x516b3b
cmp eax, 0x80170000
ja 0x516586
je 0x516519
cmp eax, 0x80130000
ja 0x516286
je 0x516334
cmp eax, 0x80100000
je 0x51625d
cmp eax, 0x80110000
je 0x516334
cmp eax, 0x80120000
jne 0x516b06
mov edi, dword [esp + 0x20]
add esi, 4
mov eax, 0x8a
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], eax
mov edx, dword [esi]
lea eax, [esi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
cmp eax, dword [edi + 0x74]
ja 0x5180eb
cmp eax, dword [edi + 0x88]
jbe 0x516234
mov dword [edi + 0x88], eax
mov edi, dword [esp + 0x34]
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 + 0x20]
lea ebx, [edx - 1]
jmp 0x516b3b
add esi, 4
mov edi, 0x8a
mov dword [esp + 0x1c], esi
mov edx, 1
mov eax, dword [esi]
mov dword [esp + 0x70], eax
mov eax, 0xa7
mov word [ecx + 4], ax
mov ecx, dword [esp + 0x20]
jmp 0x516b3b
cmp eax, 0x80140000
je 0x516334
cmp eax, 0x80150000
je 0x5162db
cmp eax, 0x80160000
jne 0x516b06
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
and eax, 0x400
movaps xmm2, xmmword [esp + 0xd0]
neg eax
sbb eax, eax
neg eax
add eax, 0x19
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov eax, 0x8a
mov dword [esp + 0x34], eax
cmp dword [esi + 4], edx
jbe 0x5162fe
cmp dword [esi + 8], 0xa
jb 0x5162f7
jne 0x51630f
cmp dword [esi + 0xc], 0x2a
ja 0x51630f
mov eax, 0x95
jmp 0x516314
cmp dword [esi + 8], 0xa
jne 0x51630f
cmp dword [esi + 0xc], 0x2a
mov eax, 0x95
je 0x516314
mov eax, 0x94
mov edi, dword [esp + 0x34]
mov edx, 1
movzx eax, ax
mov ebx, edx
mov word [ecx + 4], ax
add dword [esp + 0x1c], 0xc
mov ecx, dword [esp + 0x20]
jmp 0x516b3b
mov edx, dword [esp + 0x20]
add esi, 4
mov eax, 0x8a
mov dword [esp + 0x1c], esi
mov dword [esp + 0x34], eax
lea eax, [esi + 4]
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 + 0x58], ecx
cmp ax, word [edx + 0x58]
jae 0x5163a0
nop
movzx eax, word [edi + 8]
cmp ebx, eax
jne 0x516394
push ebx
push dword [edi]
push ecx
call fcn.0054cf50
add esp, 0xc
test eax, eax
je 0x51643a
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
movzx eax, word [edx + 0x58]
inc esi
add edi, 0xc
cmp esi, eax
jb 0x516370
mov edi, dword [esp + 0x20]
movzx eax, word [edi + 0x58]
cmp esi, eax
jb 0x516493
mov eax, dword [esp + 0x28]
xor esi, esi
cmp eax, 0x80140000
jne 0x51813d
lea edx, [esi + 1]
cmp ebx, edx
jbe 0x516401
mov edi, dword [esp + 0x58]
nop dword [eax]
movzx ecx, word [edi + edx*2]
lea esi, [esi + esi*4]
lea esi, [esi - 0x18]
lea esi, [ecx + esi*2]
cmp esi, 0xffff
ja 0x51810f
inc edx
cmp edx, ebx
jb 0x5163d0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
cmp eax, 0x80140000
jne 0x51813d
cmp esi, dword [edi + 0x74]
ja 0x51813d
mov edi, dword [esp + 0x34]
test esi, esi
mov eax, 0xffff
mov edx, 2
cmove esi, eax
mov ecx, 0x92
mov eax, dword [esp + 0x18]
lea ebx, [edx - 1]
mov word [eax + 4], cx
mov ecx, dword [esp + 0x20]
mov word [eax + 6], si
jmp 0x516b3b
cmp word [edi + 0xa], 0
jne 0x5163a0
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x28], 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 0x51647e
mov dword [edi + 0x88], eax
mov edi, dword [esp + 0x34]
mov edx, 2
mov ecx, dword [esp + 0x20]
lea ebx, [edx - 1]
jmp 0x516b3b
mov esi, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x28], 0x80130000
sete al
xor ecx, ecx
mov dword [esp + 0x90], ecx
lea eax, [eax*2 + 0x90]
mov word [esi + 4], ax
xor eax, eax
mov dword [esp + 0x38], eax
cmp dword [esp + 0x48], eax
jne 0x5164f8
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x38]
push edi
mov edi, dword [esp + 0x5c]
push ecx
push eax
lea eax, [esp + 0x9c]
push eax
push ebx
push edi
call fcn.005187a0
add esp, 0x18
test eax, eax
je 0x518297
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x90]
inc word [esi + 4]
mov edx, 3
mov edi, dword [esp + 0x34]
mov word [esi + 6], cx
mov ecx, dword [esp + 0x20]
mov word [esi + 8], ax
lea ebx, [edx - 2]
jmp 0x516b3b
mov edi, dword [esp + 0x2c]
mov eax, 0xfffffffe
mov ebx, dword [esp + 0x50]
cmp edi, 0xffffffff
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
cmove edi, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x44]
shr eax, 5
and eax, 1
mov dword [esp + 0x2c], edi
or eax, 0xc
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x5c]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x4c], 1
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp eax, 0x801b0000
ja 0x51678b
je 0x516735
cmp eax, 0x80180000
je 0x5165cd
cmp eax, 0x80190000
je 0x518165
cmp eax, 0x801a0000
jne 0x516b06
mov ecx, dword [esp + 0x20]
mov eax, 0x86
mov dword [esp + 0x34], eax
mov ebx, 1
mov edi, eax
jmp 0x516b3b
mov ebx, dword [esp + 0x2c]
cmp edi, 5
jbe 0x5165f2
cmp edi, 0x17
jae 0x5165f2
cmp ebx, 0xffffffff
mov dword [esp + 0x4c], 1
mov eax, 0xfffffffe
cmove ebx, eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x80], eax
cmp edi, 0xf
je 0x5166a5
cmp edi, 0x10
je 0x5166a5
mov edx, dword [esp + 0x20]
cmp word [edx + 0x5e], 0
jbe 0x51663f
cmp edi, 3
jne 0x51663f
mov eax, dword [edx]
test byte [eax + 0x24], 0x40
je 0x5181c7
cmp edi, 0xe
jne 0x51664d
or dword [edx + 0x70], 0x400000
jmp 0x51666f
cmp edi, 5
je 0x51665c
cmp edi, 4
je 0x51665c
cmp edi, 1
jne 0x51666f
cmp dword [edx + 0xac], 0
jne 0x51666f
mov dword [edx + 0xac], 1
cmp dword [esp + 0x84], 0
jne 0x516683
cmp edi, 0xe
jne 0x516683
mov edi, 0xd
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], di
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
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 0x5166ee
test ecx, ecx
jne 0x5166ee
mov ecx, dword [esp + 0x18]
mov eax, 0xd
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ebx, dword [esp + 0x18]
xor eax, eax
movaps xmm2, xmmword [esp + 0xd0]
cmp edi, 0x10
sete al
add eax, 0xf
mov word [ebx], ax
add ebx, 2
mov dword [esp + 0x18], ebx
mov word [ebx], cx
mov ecx, ebx
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 + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov eax, dword [esp + 0xe4]
add esi, 4
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
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 + 0x44], ebx
mov dword [esp + 0xc8], eax
xor eax, 1
mov dword [esp + 0xcc], eax
mov eax, ebx
shr eax, 3
and eax, 1
add esi, 4
mov dword [esp + 0x8c], eax
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp eax, 0x80200000
je 0x51699b
cmp eax, 0x80210000
jne 0x516b06
mov edi, dword [esp + 0x20]
add esi, 4
mov dword [esp + 0x1c], esi
xor edx, edx
mov dword [esp + 0x38], 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 + 0x54], 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 0x5181ec
movzx eax, word [ebx + 8]
cmp ecx, eax
jne 0x51684e
push ecx
push dword [ebx]
push dword [esp + 0x60]
call fcn.0054cf50
add esp, 0xc
test eax, eax
jne 0x516846
cmp dword [esp + 0x28], 0x80210000
movzx edx, word [ebx + 0xa]
mov edi, dword [ebx + 4]
mov dword [esp + 0x38], edx
je 0x5168ed
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 0x51684a
mov dword [ecx + 0x88], edi
jmp 0x51684a
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
inc esi
add ebx, 0xc
movzx eax, word [eax + 0x58]
cmp esi, eax
jb 0x5167e4
test edi, edi
je 0x5181e8
test edx, edx
jne 0x5168fa
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x2c], 0xffffffff
jne 0x516889
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x64], 0xfffffffe
test byte [esp + 0x44], 8
mov eax, 0
mov ecx, dword [esp + 0x18]
setne al
add eax, 0x71
mov word [ecx], ax
mov eax, 1
mov word [ecx + 2], di
add ecx, 4
mov dword [esp + 0x18], ecx
cmp edi, 0x20
jae 0x5168bd
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x18]
or dword [edx + 0x8c], eax
cmp edi, dword [edx + 0x88]
jbe 0x5174ba
mov esi, dword [esp + 0x1c]
movaps xmm2, xmmword [esp + 0xd0]
add esi, 4
mov dword [edx + 0x88], edi
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
jmp 0x5169b5
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], edx
cmp dword [esp + 0x48], ecx
jne 0x51693e
push dword [esp + 0x20]
lea eax, [esp + 0x3c]
push dword [esp + 0x6c]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x64]
push dword [esp + 0x6c]
call fcn.005187a0
add esp, 0x18
test eax, eax
je 0x518297
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x2c]
mov eax, 0xfffffffe
mov ebx, dword [esp + 0x18]
cmp edi, 0xffffffff
movaps xmm2, xmmword [esp + 0xd0]
cmove edi, eax
test byte [esp + 0x44], 8
mov eax, 0
mov dword [esp + 0x2c], edi
setne al
add eax, 0x73
mov word [ebx], ax
mov word [ebx + 2], dx
add ebx, 4
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
mov word [ebx], cx
mov ecx, ebx
mov esi, dword [esp + 0x1c]
add ecx, 2
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
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 0x51522f
movaps xmm2, xmmword [esp + 0xd0]
mov eax, 0x75
mov word [ecx], ax
mov eax, 0xfffffffe
mov word [ecx + 2], di
add ecx, 4
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
mov esi, dword [esp + 0x1c]
cmove edi, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x6c]
add esi, 4
mov dword [esp + 0x94], 0
mov dword [edx + 0xb8], 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x1c], esi
jmp 0x515083
mov eax, 0x85
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x20]
mov ebx, 1
mov edi, eax
jmp 0x516b3b
mov edi, dword [esp + 0x28]
cmp edi, 0x80310000
ja 0x517063
je 0x51704f
cmp edi, 0x802a0000
ja 0x516fc5
je 0x516f1d
cmp edi, 0x80260000
ja 0x516ae6
je 0x516adf
cmp edi, 0x80230000
je 0x516ad8
cmp edi, 0x80240000
je 0x516a89
cmp edi, 0x80250000
jne 0x516b06
mov edi, 0x80
jmp 0x516b33
cmp dword [esi + 4], 0x80190000
jne 0x516ad1
mov eax, dword [esi + 8]
cmp eax, 0x80340000
jb 0x516aa3
cmp eax, 0x803f0000
jbe 0x516ad1
mov edx, dword [esp + 0x20]
mov eax, 0xa2
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edi, 0x7f
jmp 0x516b33
mov edi, 0x7e
jmp 0x516b33
mov edi, 0x81
jmp 0x516b33
cmp edi, 0x80270000
je 0x516b2e
cmp edi, 0x80280000
je 0x516b27
mov ebx, dword [esp + 0x28]
cmp ebx, 0x80290000
je 0x5170be
mov eax, dword [esp + 0x68]
mov dword [eax], 0xbd
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov edi, 0x83
jmp 0x516b33
mov edi, 0x82
mov ecx, dword [esp + 0x20]
inc word [ecx + 0x5e]
mov eax, dword [esp + 0x18]
inc word [ecx + 0x5c]
mov dword [esp + 0x74], 0
mov word [eax], di
add dword [esp + 0x1c], 4
cmp dword [esp + 0x48], 0
mov dword [esp + 0x40], eax
lea eax, [esp + 0x98]
cmove eax, dword [esp + 0x74]
push eax
push ecx
push dword [esp + 0xf0]
mov esi, dword [ecx + 0xa8]
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xb8]
mov dword [esp + 0xa8], 0
push eax
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0xd8]
push eax
push edx
push dword [esp + 0x88]
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x70]
call fcn.00518400
add esp, 0x30
mov dword [esp + 0x90], eax
test eax, eax
je 0x518297
mov edx, dword [esp + 0x20]
mov ecx, 0xffff
add word [edx + 0x5c], cx
test ebx, ebx
je 0x516bff
cmp edi, 0x8a
je 0x516c17
mov ecx, dword [esp + 0x4c]
test eax, eax
mov eax, 1
cmovg ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, 0xffff
lea eax, [edi - 0x7e]
cmp eax, 5
ja 0x516c0b
add word [edx + 0x5e], cx
cmp edi, 0x8a
jne 0x516d33
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x516d3b
mov ecx, dword [esp + 0x18]
xor edx, edx
nop dword [eax]
movzx eax, word [ecx + 2]
inc edx
cmp word [ecx + eax*2], 0x79
lea ecx, [ecx + eax*2]
jne 0x516c30
mov ecx, dword [esp + 0x18]
mov eax, 0xa7
cmp word [ecx + 4], ax
jne 0x516c84
cmp edx, 1
jg 0x518214
mov edx, dword [esp + 0x20]
mov eax, 0x94
movaps xmm2, xmmword [esp + 0xd0]
mov word [ecx + 4], ax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp edx, 2
jg 0x518240
cmp edx, 1
jne 0x516ce2
mov edx, dword [esp + 0x40]
mov eax, 0xfffffffe
mov ebx, dword [esp + 0x2c]
mov ecx, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x94], 0
jmp 0x516e04
cmp dword [esp + 0x90], 0
jle 0x516d98
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], 1
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x94], 0
jmp 0x516df6
mov eax, dword [esp + 0x48]
test eax, eax
je 0x516d9c
mov edi, dword [esp + 0x48]
mov ecx, 0x7fffffeb
mov esi, dword [esp + 0x98]
mov edx, dword [edi]
sub ecx, edx
lea eax, [esi - 4]
cmp ecx, eax
jb 0x51826c
mov ecx, dword [esp + 0x18]
lea eax, [esi - 4]
movaps xmm2, xmmword [esp + 0xd0]
add eax, edx
mov edx, 2
mov dword [edi], eax
mov word [ecx + 6], dx
mov edx, dword [esp + 0x20]
mov dword [ecx + 2], 0x790002
add ecx, 8
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], ecx
cmp edi, 0xa7
je 0x5174ba
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x94], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], ecx
cmp edi, 0x84
jb 0x516ea3
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
cmp ebx, 0xffffffff
jne 0x516e48
cmp ecx, ebx
je 0x516e48
cmp ecx, 0xfffffffe
jae 0x516e36
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x94], 1
mov dword [esp + 0x64], 0xfffffffe
jmp 0x516e6b
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x64], 0xfffffffe
jmp 0x516e6b
cmp ecx, 0xfffffffe
jae 0x516e6b
cmp eax, 0xfffffffe
jb 0x516e74
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xa8], eax
mov eax, ecx
or eax, esi
mov dword [esp + 0x9c], eax
cmp eax, 0xfffffffe
jae 0x5174b2
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xa8]
add esi, 4
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp edi, 0x7e
je 0x516ebc
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], ecx
cmp edi, 0x82
jne 0x5174ba
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], ecx
cmp edx, 0xfffffffe
jae 0x5174b6
cmp dword [esp + 0xa4], 0xfffffffe
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], ecx
jae 0x5174b6
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xa8]
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc4], 1
mov ecx, dword [edx + 0x60]
mov dword [edx + 0xb0], 1
test ecx, ecx
je 0x516f7c
nop dword [eax]
mov ax, word [ecx + 6]
cmp ax, word [edx + 0x5e]
jb 0x516f7c
mov eax, dword [esp + 0x48]
test eax, eax
je 0x516f57
add dword [eax], 3
jmp 0x516f76
mov edx, dword [esp + 0x18]
mov eax, 0xa5
mov word [edx], ax
mov ax, word [ecx + 4]
mov word [edx + 2], ax
add edx, 4
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x516f40
mov ecx, dword [esp + 0x18]
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 + 0x2c], 0xffffffff
mov dword [esp + 0x18], ecx
jne 0x5174ba
mov esi, dword [esp + 0x1c]
movaps xmm2, xmmword [esp + 0xd0]
add esi, 4
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ebx, dword [esp + 0x28]
cmp ebx, 0x802e0000
ja 0x516ff4
je 0x517008
cmp ebx, 0x802b0000
je 0x517018
cmp ebx, 0x802c0000
je 0x517018
cmp ebx, 0x802d0000
jne 0x516b06
jmp 0x5170be
cmp ebx, 0x802f0000
je 0x517053
cmp ebx, 0x80300000
jne 0x516b06
mov edx, dword [esp + 0x20]
mov dword [edx + 0xb4], 1
jmp 0x51701c
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
lea eax, [ebx + 0x7fd70000]
shr eax, 0x10
mov ax, word [eax*4 + 0x6d5d70]
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov dword [eax + 0xb4], 1
jmp 0x5170be
mov ebx, dword [esp + 0x28]
cmp ebx, 0x80390000
ja 0x517238
je 0x517229
cmp ebx, 0x80350000
ja 0x517209
je 0x5170a7
cmp ebx, 0x80320000
je 0x5171d7
cmp ebx, 0x80330000
je 0x5170b3
cmp ebx, 0x80340000
jne 0x516b06
xor edi, edi
mov ebx, 0x10000
jmp 0x5174e4
mov eax, dword [esp + 0x20]
or dword [eax + 0x70], 0x1000
lea eax, [ebx + 0x7fd70000]
xor esi, esi
shr eax, 0x10
mov dword [esp + 0x38], esi
mov ax, word [eax*4 + 0x6d5d70]
mov word [ecx], ax
add ecx, 2
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x1c], eax
mov ebx, dword [eax]
mov dword [esp + 0x40], ecx
add ecx, 2
mov dword [esp + 0x18], ecx
test ebx, ebx
jle 0x5171a8
cmp dword [esp + 0x84], edx
je 0x517166
add eax, 4
lea ecx, [esp + 0x12c]
push ecx
mov dword [esp + 0x20], eax
push dword [eax]
call fcn.0054eb50
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x48]
test eax, eax
je 0x51712f
add dword [eax], edi
mov ecx, dword [esp + 0x18]
jmp 0x51715b
lea esi, [edi + edi]
push esi
lea eax, [esp + 0x130]
push eax
push dword [esp + 0x20]
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
add esp, 0xc
add ecx, esi
mov esi, dword [esp + 0x38]
add esi, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], esi
sub ebx, 1
je 0x5171a8
mov eax, dword [esp + 0x1c]
jmp 0x517104
mov edi, dword [esp + 0x48]
nop word [eax + eax]
add eax, 4
mov dword [esp + 0x1c], eax
mov cx, word [eax]
mov word [esp + 0x12c], cx
test edi, edi
je 0x51718e
inc dword [edi]
mov ecx, dword [esp + 0x18]
jmp 0x5171a3
mov eax, dword [esp + 0x18]
mov word [eax], cx
mov ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, 2
mov dword [esp + 0x18], ecx
inc esi
sub ebx, 1
jne 0x517170
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
movaps xmm2, xmmword [esp + 0xd0]
mov word [eax], si
xor eax, eax
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
mov edx, dword [esp + 0x20]
mov eax, 0x9e
movaps xmm2, xmmword [esp + 0xd0]
or dword [edx + 0x70], 0x1000
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
add esi, 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp ebx, 0x80360000
je 0x5170a7
cmp ebx, 0x80370000
je 0x517229
cmp ebx, 0x80380000
jne 0x516b06
mov edi, 1
mov ebx, 0x10000
jmp 0x5174e4
cmp ebx, 0x803d0000
ja 0x51726c
je 0x5174d2
cmp ebx, 0x803a0000
je 0x517262
cmp ebx, 0x803b0000
je 0x517262
cmp ebx, 0x803c0000
jne 0x516b06
xor edi, edi
lea ebx, [edi + 1]
jmp 0x5174e4
cmp ebx, 0x803e0000
je 0x5174d2
cmp ebx, 0x803f0000
je 0x5174d2
cmp ebx, 0x80000000
jae 0x516b06
mov edi, dword [esi]
mov dword [esp + 0x4c], 1
cmp dword [esp + 0x84], edx
jne 0x5172b0
cmp dword [esp + 0xb0], edx
je 0x51734f
test byte [esp + 0x44], 8
je 0x51732f
mov eax, edi
mov ebx, 0x80
cdq
idiv ebx
movzx eax, word [eax*2 + 0x6dcaf8]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x6e0ef8]
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x6d88eb]
test al, al
je 0x51732f
mov edx, dword [esp + 0x20]
mov dword [ecx], 0xa0010
movzx eax, al
mov word [ecx + 4], ax
add ecx, 6
cmp dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x18], ecx
jne 0x5174ba
mov esi, dword [esp + 0x1c]
movaps xmm2, xmmword [esp + 0xd0]
add esi, 4
mov dword [esp + 0x64], 0xfffffffe
mov dword [esp + 0x2c], 0xfffffffe
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x51734f
lea eax, [esp + 0x12c]
push eax
push edi
call fcn.0054eb50
add esp, 8
mov ebx, eax
jmp 0x51735c
mov ebx, 1
mov word [esp + 0x12c], di
test byte [esp + 0x44], 8
lea esi, [ebx + ebx]
mov ecx, dword [esp + 0x18]
mov eax, 0
setne al
add eax, 0x1d
push esi
mov word [ecx], ax
lea eax, [esp + 0x130]
add ecx, 2
push eax
push ecx
mov dword [esp + 0x24], ecx
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov ax, word [esp + 0x12c]
add ecx, esi
mov dword [esp + 0x18], ecx
cmp ax, 0xd
je 0x5173ad
cmp ax, 0xa
jne 0x5173ba
mov edx, dword [esp + 0x20]
or dword [edx + 0x70], 0x800
jmp 0x5173be
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
cmp edi, 0xffffffff
jne 0x51742e
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x64], 0xfffffffe
mov dword [esp + 0x80], esi
cmp ebx, 1
je 0x517403
cmp dword [esp + 0x8c], 0
je 0x517403
mov dword [esp + 0x50], 0xfffffffe
mov dword [esp + 0x2c], 0xfffffffe
jmp 0x517475
movzx eax, ax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x2c], eax
cmp ebx, 1
je 0x517475
movzx esi, word [ecx - 2]
mov eax, dword [edx + 0xa8]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x50], eax
jmp 0x517475
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x64], edi
mov dword [esp + 0x80], eax
cmp ebx, 1
je 0x51745c
cmp dword [esp + 0x8c], 0
jne 0x517475
mov ebx, dword [edx + 0xa8]
movzx eax, word [ecx - 2]
or ebx, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x50], ebx
cmp dword [esp + 0xb4], 0
je 0x5174ba
mov esi, dword [esp + 0x1c]
and dword [esp + 0x44], 0xfffffff7
add esi, 4
movaps xmm2, xmmword [esp + 0xd0]
mov dword [esp + 0x8c], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x1c], esi
jmp 0x515083
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
movaps xmm2, xmmword [esp + 0xd0]
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x515083
add esi, 4
mov dword [esp + 0x1c], esi
mov edi, dword [esi]
add esi, 4
mov dword [esp + 0x1c], esi
mov ebx, dword [esi]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edi
test eax, eax
je 0x517511
test edi, edi
je 0x517511
xor ecx, ecx
mov dword [esp + 0x4c], 1
cmp edi, ebx
mov eax, 2
cmove eax, ecx
mov dword [esp + 0xa0], eax
jmp 0x517553
xor ecx, ecx
mov eax, 2
cmp edi, ebx
mov dword [esp + 0x4c], ecx
cmove eax, ecx
mov dword [esp + 0xa0], eax
test edi, edi
jne 0x517553
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x28]
cmp eax, 0x803b0000
ja 0x51757e
je 0x51759c
cmp eax, 0x80380000
ja 0x517577
je 0x51759c
cmp eax, 0x80350000
je 0x51759c
cmp eax, 0x80360000
jmp 0x517591
cmp eax, 0x80390000
jmp 0x517591
cmp eax, 0x803c0000
je 0x5175aa
cmp eax, 0x803e0000
je 0x51759c
cmp eax, 0x803f0000
je 0x5175aa
mov eax, dword [esp + 0xc8]
jmp 0x5175b1
mov dword [esp + 0x28], edx
mov dword [esp + 0x60], 1
jmp 0x5175b9
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x60], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
movzx edx, word [eax]
movzx ecx, dx
add ecx, 0xffffffe3
mov dword [esp + 0x54], edx
cmp ecx, 0x85
ja case.0x5175e1.33
movzx eax, byte [ecx + 0x518308]
jmp dword [eax*4 + 0x5182f0]
cmp ebx, 1
jne 0x5175f5
cmp edi, ebx
je case.0x5175e1.162
cmp dword [esp + 0x84], 0
mov edi, dword [ecx*4 + 0x7322b0]
je 0x517653
mov eax, dword [esp + 0x18]
mov ecx, 0xfc00
mov ax, word [eax - 2]
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x517653
mov eax, dword [esp + 0x18]
lea ecx, [eax - 4]
sub eax, ecx
sar eax, 1
mov dword [esp + 0x58], eax
add eax, eax
push eax
push ecx
lea eax, [esp + 0x134]
push eax
call fcn.00554ff0
add esp, 0xc
mov dword [esp + 0x34], 0xffffffff
or edx, 0xffffffff
jmp 0x517daa
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], 1
movzx eax, word [eax - 2]
mov word [esp + 0x12c], ax
mov ecx, eax
cmp edx, 0x1e
ja 0x517d8d
cmp dword [esp + 0x30], 1
jbe 0x517d8d
mov eax, dword [esp + 0x20]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x50], eax
cmp edx, 0x1e
jne 0x517d8d
or eax, 1
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x50], eax
or edx, 0xffffffff
jmp 0x517daa
test ebx, ebx
jne 0x5176c4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
jmp 0x51809d
cmp ebx, 1
jne 0x5176d1
cmp edi, ebx
je case.0x5175e1.162
test edi, edi
jne 0x51771e
cmp ebx, 0x10000
jne 0x5176fb
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, 0x62
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x517d34
cmp ebx, 1
jne 0x517749
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, 0x66
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x517d34
cmp edi, 1
jne 0x517749
cmp ebx, 0x10000
jne 0x517749
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, 0x64
mov word [ecx], ax
add ecx, 2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x517d34
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, 0x68
mov word [ecx], ax
xor eax, eax
mov word [ecx + 2], di
add ecx, 4
cmp ebx, 0x10000
cmove ebx, eax
mov word [ecx], bx
add ecx, 2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x517d34
cmp ebx, 1
jne 0x517790
cmp edi, ebx
jne 0x517790
cmp dword [esp + 0x60], 0
je case.0x5175e1.162
test edi, edi
je 0x51783e
cmp edi, 1
jne 0x5177a9
cmp ebx, 0x10000
je 0x51783e
mov ecx, edi
cmp edi, ebx
jne 0x5177b2
lea ecx, [edi - 1]
cmp dword [esp + 0x48], 0
je 0x5177fa
mov eax, ecx
lea edi, [ecx + ecx]
mov ecx, 2
imul ecx
test edx, edx
jg 0x51826c
jl 0x5177da
cmp eax, 0x7fffffff
ja 0x51826c
mov edx, dword [esp + 0x48]
mov eax, 0x7fffffeb
mov ecx, dword [edx]
sub eax, ecx
cmp eax, edi
jb 0x51826c
lea eax, [edi + ecx]
mov edi, dword [esp + 0x30]
mov dword [edx], eax
jmp 0x517820
test ecx, ecx
jle 0x517820
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [edx], eax
mov eax, edx
add edx, 4
sub ecx, 1
jne 0x517806
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], edx
cmp edi, ebx
je 0x517d30
cmp ebx, 0x10000
je 0x517836
sub ebx, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x3c]
mov edx, 0x86
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [ecx]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx], 0x40086
add eax, 8
mov dword [ecx + 8], 0x40079
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x98], 6
jmp 0x517888
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
sub eax, ecx
xor edi, edi
mov ecx, dword [esp + 0x30]
sar eax, 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x58], edi
cmp ebx, 1
jne 0x5178b1
cmp ecx, ebx
jne 0x5178b1
cmp dword [esp + 0x60], edi
je case.0x5175e1.162
cmp dx, word [esp + 0xec]
jne 0x5178e3
mov edx, dword [esp + 0x3c]
mov ecx, 0x94
cmp word [edx + 4], cx
mov ecx, dword [esp + 0x30]
jne 0x517900
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x78
jne case.0x5175e1.162
mov eax, dword [esp + 0x38]
jmp 0x517900
cmp dx, word [esp + 0xf0]
mov edx, dword [esp + 0x3c]
jae 0x517900
cmp ebx, 0x10000
jne 0x517900
lea ebx, [ecx + 1]
mov dword [esp + 0x34], ebx
test ecx, ecx
jne 0x5179c3
cmp ebx, 1
jbe 0x517956
cmp ebx, 0x10000
je 0x517956
add eax, eax
push eax
push edx
lea eax, [edx + 6]
push eax
call fcn.00554ff0
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov edx, dword [esp + 0x28]
add dword [esp + 0x18], 6
dec ebx
lea edi, [ecx + 4]
lea eax, [edx + 0x96]
mov word [ecx], ax
lea eax, [ecx + 6]
mov dword [ecx + 2], 0x86
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
jmp 0x517a8c
add eax, eax
lea esi, [edx + 2]
push eax
push edx
push esi
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
add esp, 0xc
add ecx, 2
mov dword [esp + 0x18], ecx
test ebx, ebx
jne 0x51798e
mov eax, dword [esp + 0x3c]
mov edx, 0xa6
mov dword [esp + 0x3c], esi
mov word [eax], dx
mov esi, dword [esp + 0x1c]
jmp 0x51809d
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x58], edi
mov dword [esp + 0x3c], esi
lea eax, [edx + 0x96]
mov word [edi], ax
xor edi, edi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
cmp ebx, 0x10000
je 0x5179ba
dec ebx
mov esi, dword [esp + 0x1c]
jmp 0x517a8c
cmp ecx, 1
jbe 0x517a7a
cmp dword [esp + 0x48], edi
je 0x517a23
lea eax, [ecx - 1]
mov edx, eax
imul edx, dword [esp + 0x98]
mov dword [esp + 0x74], edx
mul dword [esp + 0x98]
test edx, edx
jg 0x51826c
jl 0x5179ff
cmp eax, 0x7fffffff
ja 0x51826c
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x74]
mov ecx, dword [eax]
mov eax, 0x7fffffeb
sub eax, ecx
cmp eax, edx
jb 0x51826c
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x48]
mov dword [ecx], eax
jmp 0x517a76
cmp dword [esp + 0x94], edi
je 0x517a43
cmp dword [esp + 0x50], 0xfffffffe
jb 0x517a43
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x50], ebx
mov edi, dword [esp + 0x18]
lea esi, [eax + eax]
lea ebx, [ecx - 1]
nop dword [eax]
push esi
push edx
push edi
call fcn.00554ff0
mov edx, dword [esp + 0x48]
add esp, 0xc
add edi, esi
sub ebx, 1
jne 0x517a50
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
cmp ebx, 0x10000
je 0x517bdd
sub ebx, ecx
cmp ebx, 0x10000
je 0x517bdd
cmp dword [esp + 0x48], 0
je 0x517b41
test ebx, ebx
je 0x517b41
mov eax, dword [esp + 0x98]
add eax, 5
mov ecx, eax
imul ecx, ebx
mul ebx
sub ecx, 4
test edx, edx
jg 0x51826c
jl 0x517ad4
cmp eax, 0x7fffffff
ja 0x51826c
mov ebx, dword [esp + 0x48]
mov eax, 0x7fffffeb
mov edx, dword [ebx]
sub eax, edx
cmp eax, ecx
jb 0x51826c
lea eax, [ecx + edx]
mov dword [ebx], eax
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x517d34
mov ebx, 0x79
nop
mov edx, ecx
mov esi, ecx
sub edx, edi
sar edx, 1
inc edx
lea eax, [edx + edx]
sub esi, eax
movzx eax, word [esi + 2]
mov word [ecx], bx
test eax, eax
je 0x517bc2
neg eax
lea edi, [edi + eax*2]
movzx eax, dx
mov word [ecx + 2], ax
add ecx, 4
mov dword [esp + 0x18], ecx
mov word [esi + 2], ax
test edi, edi
jne 0x517b00
mov esi, dword [esp + 0x1c]
jmp 0x517d34
cmp ebx, 1
jb 0x517aee
mov esi, dword [esp + 0x38]
lea eax, [edx + 0x96]
mov ecx, dword [esp + 0x18]
add esi, esi
mov dword [esp + 0x74], eax
nop word [eax + eax]
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x18], ecx
cmp ebx, 1
je 0x517b94
mov eax, 0x86
mov word [ecx], ax
test edi, edi
jne 0x517b7f
xor eax, eax
jmp 0x517b86
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 + 0x18], ecx
push esi
push dword [esp + 0x40]
push ecx
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
dec ebx
mov eax, dword [esp + 0x80]
add ecx, esi
add esp, 0xc
mov dword [esp + 0x18], ecx
cmp ebx, 1
jae 0x517b60
mov esi, dword [esp + 0x1c]
jmp 0x517af2
movzx eax, dx
mov word [ecx + 2], ax
add ecx, 4
mov word [esi + 2], ax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x517d34
mov esi, dword [esp + 0x18]
mov edx, 0x84
movzx eax, word [esi - 2]
lea edi, [esi - 4]
add eax, eax
sub edi, eax
movzx ecx, word [edi]
mov eax, ecx
cmp cx, dx
jne 0x517c13
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x517d21
mov eax, 0x86
mov word [edi], ax
mov edx, eax
jmp 0x517c27
mov ecx, 0x85
mov edx, eax
cmp ax, cx
je 0x517d21
mov ebx, dword [esp + 0x60]
cmp dword [esp + 0x48], 0
movzx ecx, dx
jne 0x517c6b
cmp dword [esp + 0x90], 0
movzx eax, dx
jge 0x517c47
lea eax, [edx + 5]
mov word [edi], ax
movzx eax, ax
mov edx, 0x8a
movzx ecx, ax
cmp ax, dx
jne 0x517c70
movzx eax, word [edi + 2]
mov ecx, edx
cmp word [edi + eax*2], 0x78
lea eax, [edx + 5]
je 0x517c75
mov word [edi], ax
mov ecx, eax
jmp 0x517c75
mov edx, 0x8a
mov eax, 0x8f
test ebx, ebx
je 0x517d11
cmp cx, dx
je 0x517c9c
cmp cx, ax
je 0x517c9c
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x18]
mov word [edi], ax
mov eax, 0x7c
mov word [esi - 4], ax
jmp 0x517cec
mov esi, dword [esp + 0x18]
sub esi, edi
sar esi, 1
lea eax, [esi + esi]
push eax
lea eax, [edi + 4]
push edi
push eax
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
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]
mov word [ecx + 6], ax
add ecx, 8
mov dword [esp + 0x18], ecx
mov word [edi + 2], ax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x517cfc
mov edx, 0x98
mov word [eax], dx
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 0x1c]
jae 0x517d3f
mov dword [esp + 0x60], 0
jmp 0x517d34
mov eax, dword [esp + 0x28]
add eax, 0x7a
mov word [esi - 4], ax
jmp 0x518095
mov eax, dword [esp + 0x28]
add eax, 0x7a
mov word [esi - 4], ax
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x60], 0
je 0x51809d
mov eax, dword [esp + 0x40]
movzx ecx, word [eax]
lea eax, [ecx - 0x1d]
cmp eax, 0x53
ja case.0x517d59.33
movzx eax, byte [eax + 0x5183a4]
jmp dword [eax*4 + 0x518390]
cmp edx, 0x17
jae 0x51828d
cmp ebx, 1
jne 0x517d76
cmp edi, ebx
je case.0x5175e1.162
mov dword [esp + 0x58], 0
mov edi, 0x34
cmp edx, 0x10
je 0x517d9a
cmp edx, 0xf
je 0x517d9a
mov dword [esp + 0x34], 0xffffffff
or edx, 0xffffffff
jmp 0x517daa
mov eax, dword [esp + 0x3c]
movzx edx, word [eax + 2]
movzx eax, word [eax + 4]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], eax
test ebx, ebx
je case.0x5175e1.162
add dword [esp + 0x28], edi
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x517e55
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
movzx eax, ax
lea ecx, [esi + 2]
mov dword [esp + 0x18], ecx
cmp ebx, 0x10000
jne 0x517e2e
add eax, 0x21
mov word [esi], ax
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x517f80
lea esi, [eax + eax]
push esi
lea eax, [esp + 0x130]
push eax
push ecx
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
add esp, 0xc
add ecx, esi
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x1c]
jmp 0x517d34
mov edi, dword [esp + 0x34]
cmp ebx, 1
jne 0x517e43
add eax, 0x25
mov dword [esp + 0x18], ecx
mov word [esi], ax
jmp 0x517df6
add eax, 0x27
mov word [esi], ax
mov word [ecx], bx
add ecx, 2
mov dword [esp + 0x18], ecx
jmp 0x517df6
cmp eax, 1
jne 0x517ea8
cmp ebx, 0x10000
jne 0x517e7c
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
add eax, 0x23
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x18], ecx
jmp 0x517df2
mov dword [esp + 0x18], ecx
cmp ebx, 1
je case.0x5175e1.162
mov eax, dword [esp + 0x28]
add eax, 0x27
mov word [ecx], ax
add ecx, 2
lea eax, [ebx - 1]
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x18], ecx
jmp 0x517df2
mov ecx, dword [esp + 0x3c]
lea eax, [edi + 0x29]
mov word [ecx], ax
mov eax, dword [esp + 0x30]
mov word [ecx + 2], ax
add ecx, 4
mov dword [esp + 0x18], ecx
cmp ebx, eax
je 0x517df2
mov eax, dword [esp + 0x58]
test eax, eax
je 0x517f21
lea esi, [eax + eax]
push esi
lea eax, [esp + 0x130]
push eax
push ecx
call fcn.00554ff0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x38]
add ecx, esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x18], ecx
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
add ecx, 2
movzx eax, ax
cmp ebx, 0x10000
jne 0x517f47
mov ebx, dword [esp + 0x18]
add eax, 0x21
mov dword [esp + 0x18], ecx
mov word [ebx], ax
jmp 0x517dfa
mov esi, dword [esp + 0x54]
mov word [ecx], si
add ecx, 2
mov dword [esp + 0x18], ecx
test edx, edx
js 0x517ef8
mov edi, dword [esp + 0x34]
mov word [ecx], dx
mov word [ecx + 2], di
add ecx, 4
mov dword [esp + 0x18], ecx
jmp 0x517efc
sub ebx, dword [esp + 0x30]
cmp ebx, 1
jne 0x517f63
mov ebx, dword [esp + 0x18]
add eax, 0x25
mov dword [esp + 0x18], ecx
mov word [ebx], ax
jmp 0x517dfa
mov edx, dword [esp + 0x18]
add eax, 0x27
mov word [edx], ax
mov edx, dword [esp + 0x38]
mov word [ecx], bx
add ecx, 2
mov dword [esp + 0x18], ecx
jmp 0x517dfa
mov word [ecx], si
add ecx, 2
mov dword [esp + 0x18], ecx
test edx, edx
js 0x517e25
mov word [ecx], dx
mov word [ecx + 2], di
add ecx, 4
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
jmp 0x517d34
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 4]
cmp eax, 0x10
je 0x517fc8
cmp eax, 0xf
je 0x517fc8
movzx ecx, byte [ecx + 0x6f4250]
xor eax, eax
add ecx, eax
jmp 0x51801e
movzx ecx, byte [ecx + 0x6f4250]
mov eax, 2
add ecx, eax
jmp 0x51801e
cmp dword [esp + 0x84], 0
mov eax, dword [esp + 0x40]
movzx ecx, byte [ecx + 0x6f4250]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x40], ecx
je case.0x517d59.33
mov ax, word [ecx - 2]
mov edx, 0xfc00
and ax, dx
mov edx, 0xd800
cmp ax, dx
jne case.0x517d59.33
lea eax, [ecx + 2]
jmp 0x518025
add dword [esp + 0x40], 0x22
jmp case.0x517d59.33
mov ecx, dword [esp + 0x40]
movzx ecx, word [ecx + 2]
mov eax, dword [esp + 0x40]
lea eax, [eax + ecx*2]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x18]
mov edi, ebx
mov ecx, dword [esp + 0x40]
sub edi, ecx
sar edi, 1
test edi, edi
jle case.0x5175e1.162
movzx eax, word [ecx]
cmp eax, 0x76
jae 0x518055
mov al, byte [eax + 0x6d6018]
test al, al
je 0x518055
movzx eax, al
mov word [ecx], ax
jmp 0x518095
mov ecx, dword [esp + 0x40]
lea eax, [edi + edi]
push eax
push ecx
lea eax, [ecx + 4]
push eax
call fcn.00554ff0
mov eax, dword [esp + 0x4c]
mov ecx, 0x84
add esp, 0xc
mov word [eax], cx
mov eax, 0x79
lea ecx, [edi + 2]
mov word [ebx + 4], ax
mov word [ebx + 6], cx
add ebx, 8
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], ebx
mov word [eax + 2], cx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
movaps xmm2, xmmword [esp + 0xd0]
or dword [edx + 0xa8], eax
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x515083
cmp edx, ecx
mov ecx, dword [esp + 0x68]
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 + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x68]
mov dword [eax], 0x73
xor eax, eax
mov dword [edi + 0x54], edx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
mov dword [eax], 0xa1
mov eax, dword [esp + 0x70]
add eax, edx
mov dword [ebx + 0x54], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x68]
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 + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x6c]
mov dword [edx], eax
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x2c]
mov dword [edx], eax
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x5c]
mov dword [edx], eax
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0x50]
mov dword [edx], eax
mov eax, dword [esp + 0x104]
mov dword [eax], ecx
mov eax, dword [esp + 0x108]
mov dword [eax], esi
mov eax, dword [esp + 0xac]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x68]
mov dword [eax], 0xc7
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x68]
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 + 0x150]
xor ecx, esp
call fcn.00553392
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 + 0x68]
mov dword [eax], 0x9a
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
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 + 0x68]
mov dword [eax], 0x7f
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x68]
mov dword [eax], 0x78
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x68]
mov dword [eax], 0x6e
mov ecx, dword [esp + 0x15c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00553392
mov esp, ebp
pop ebp
ret