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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x5e173c]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, edx
mov dword [esp + 0x58], 0
mov edx, ecx
mov dword [esp + 0x10], eax
shl eax, 6
push ebx
push esi
lea esi, [edx + 0x2d8]
mov dword [esp + 0x4c], edx
add esi, eax
lea ecx, [edx + 0x140]
push edi
mov edi, dword [edx]
mov dword [esp + 0x58], ecx
mov eax, dword [esi + 0x34]
mov dword [esp + 0x4c], eax
movzx eax, byte [esi + 0x20]
mov ecx, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x5c], ecx
lea ecx, [eax + eax*8]
mov dword [esp + 0x34], edi
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x3c]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x48], esi
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x40], eax
xor eax, eax
test edx, edx
jle 0x4906a8
mov ecx, dword [esp + 0x50]
add ecx, 0x40
lea esp, [esp]
mov edi, dword [esp + 0x40]
cmp dword [ecx], edi
mov edi, dword [esp + 0x34]
je 0x4908f1
inc eax
add ecx, 4
cmp eax, edx
jl 0x490690
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
not ecx
not edx
and ecx, dword [ebp + 8]
and edx, dword [ebp + 0xc]
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x3c], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x1c]
call fcn.00580120
mov ecx, dword [esp + 0x4c]
and eax, 1
mov dword [esp + 0x24], eax
test byte [ecx + 0x24], 0x40
je 0x490702
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], 1
test byte [eax + 0x22], 0x20
je 0x49070d
mov dword [esp + 0x80], 0
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x24], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x490762
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], edx
call fcn.00431510
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x49075b
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
call fcn.00431240
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x490770
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], ecx
lea eax, [ecx + 1]
mov dword [ebx + 0x24], eax
lea eax, [ecx - 1]
test ecx, eax
jne 0x4907d4
mov eax, dword [ebx]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x38], eax
lea eax, [ecx*8 + 4]
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x2c], edx
call fcn.00431510
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x4907cd
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
call fcn.00431240
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x4907e2
mov dword [eax + ecx*4], 0xffffffff
or eax, 0xffffffff
sub eax, ecx
cmp byte [esi + 0x20], 0
mov dword [esp + 0x7c], eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x30]
jbe 0x49085e
test byte [eax + 0x20], 8
je 0x49085e
mov eax, dword [edi + 0x4c]
inc eax
mov dword [edi + 0x4c], eax
mov dword [esi], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x20], eax
jg 0x490826
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x49085a
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
test byte [eax + 0x24], 4
je 0x4909ac
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x18]
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x49089c
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x4908d0
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x80], edx
cmp dword [ebx + 0x20], edx
jg 0x490912
mov ecx, ebx
call fcn.0044de80
test eax, eax
je 0x49090b
mov edx, 1
jmp 0x49094a
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x4906b9
mov edx, dword [esp + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x28], edx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x49096e
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x4909a3
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x27
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x20]
inc eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov byte [esi + 0x21], 0xe
jmp 0x491a2a
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 0x24]
test edx, 0x400
je 0x490c75
movzx edx, word [ecx + 0x28]
mov ebx, dword [edi + 0x3c]
inc dword [edi + 0x60]
mov dword [esp + 0x18], edx
lea eax, [edx + 2]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x40]
cmp dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
jg 0x4909f9
add eax, 2
add eax, edx
mov dword [edi + 0x40], eax
mov eax, dword [edi + 0x3c]
sub eax, dword [esp + 0x14]
mov dword [edi + 0x3c], eax
jmp 0x490a0f
mov eax, dword [edi + 0x4c]
lea ebx, [eax + 1]
mov dword [esp + 0x10], ebx
lea ebx, [edx + 2]
add eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x490a6f
xor ebx, ebx
lea esp, [esp]
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + ebx*4]
test edx, edx
je 0x490a64
mov eax, dword [esp + 0x10]
mov ecx, edi
add eax, 2
add eax, ebx
test byte [edx + 0x12], 1
push eax
je 0x490a53
push dword [esp + 0x28]
push ebx
push esi
call fcn.0048fca0
mov eax, dword [esi + 0x10]
add esp, 0x10
mov dword [esp + 0x1c], eax
jmp 0x490a60
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.00462140
add esp, 4
mov ecx, dword [esp + 0x4c]
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x490a20
mov ebx, dword [esp + 0x54]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x490a97
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x490acb
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x80], eax
cmp dword [ebx + 0x20], eax
jg 0x490aec
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x490b21
mov eax, dword [esp + 0x80]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x4c]
mov edx, 0xfffffff5
mov ecx, 0xfffffffe
cmp byte [eax + 0x1c], 0
mov eax, dword [eax + 0x20]
cmovne ecx, edx
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x80], edx
cmp dword [ebx + 0x20], edx
jg 0x490b69
mov ecx, ebx
call fcn.0044de80
test eax, eax
je 0x490b62
mov edx, 1
jmp 0x490ba1
mov edx, dword [esp + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x1c]
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x48]
mov word [eax + ecx*4], 0xc
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x28]
mov ecx, ebx
push dword [esp + 0x30]
call fcn.0044e560
mov ecx, dword [esp + 0x54]
add esp, 8
cmp dword [esp + 0x18], 0
mov byte [ecx + 0x1c], 0
jle 0x490bf5
xor edi, edi
mov ebx, ecx
cmp edi, 0x10
jge 0x490bed
mov ax, word [ebx + 0x1e]
mov cx, di
shr ax, cl
test al, 1
je 0x490be6
mov edx, dword [ebx + 0x2c]
mov ecx, esi
mov edx, dword [edx + edi*4]
call fcn.0048fba0
inc edi
cmp edi, dword [esp + 0x18]
jl 0x490bc6
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x24], eax
dec ecx
mov byte [esi + 0x21], 0x8b
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x28], eax
mov esi, 0xa
mov eax, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x80], ecx
lea ecx, [edi + 0x78]
mov edx, dword [ecx]
cmp edx, eax
jl 0x490c54
cmp edx, dword [esp + 0x80]
jg 0x490c54
cmp byte [ecx - 8], 0
je 0x490c4e
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x490c46
movzx eax, al
mov dword [edi + eax*4 + 0x1c], edx
inc byte [edi + 0x13]
mov eax, dword [esp + 0x10]
mov byte [ecx - 8], 0
mov dword [ecx], 0
add ecx, 0x18
dec esi
jne 0x490c20
mov ecx, dword [esp + 0x14]
cmp ecx, dword [edi + 0x3c]
jle 0x490c69
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x40], eax
mov ecx, edi
call fcn.00460c40
jmp 0x491a2a
mov eax, edx
and eax, 0x100
je 0x490d18
test dl, 5
je 0x490d18
mov al, byte [edi + 0x13]
test al, al
jne 0x490c9a
inc dword [edi + 0x4c]
mov edx, dword [edi + 0x4c]
jmp 0x490ca6
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x1c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x24]
push edx
push ecx
mov dword [esp + 0x6c], edx
mov ecx, edi
mov edx, dword [eax]
push 0
push esi
call fcn.0048fca0
mov esi, dword [esi + 0x10]
mov edi, eax
push esi
push edi
mov edx, 0x21
mov ecx, ebx
call fcn.0044e020
push edi
push esi
mov esi, dword [esp + 0x60]
mov edx, 0x3f
push esi
mov ecx, ebx
call fcn.0044df00
mov ecx, dword [esp + 0x58]
add esp, 0x24
mov edx, edi
push 1
call fcn.00460bf0
add esp, 4
mov edx, esi
push edi
mov edi, dword [esp + 0x38]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00460ab0
mov eax, dword [esp + 0x50]
add esp, 8
mov byte [eax + 0x21], 0x95
jmp 0x491a2a
test eax, eax
je 0x490f1a
test dl, 2
je 0x490f1a
mov dword [esp + 0x20], 0x95
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
test dl, 0x20
je 0x490d67
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x1c], 1
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test dl, 0x10
je 0x490d7c
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
jmp 0x490d7e
xor ecx, ecx
cmp dword [esp + 0x24], 0
je 0x490d93
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
jmp 0x490d97
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x490e09
mov esi, dword [ecx]
lea eax, [esp + 0x80]
push eax
mov ecx, edi
mov dword [esp + 0x18], 0x3937383a
mov edx, dword [esi + 0x10]
call fcn.004620a0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
push edi
push eax
movzx eax, byte [esi]
push dword [esp + 0x48]
movzx edx, byte [esp + eax - 0x2d]
call fcn.0044df00
add esp, 0xc
mov edx, edi
mov edi, dword [esp + 0x34]
mov ecx, edi
push 1
call fcn.00460bf0
mov edx, dword [esp + 0x84]
add esp, 4
mov ecx, edi
call fcn.004633c0
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x3c]
call fcn.0048fba0
jmp 0x490e2e
mov eax, dword [esp + 0x18]
mov edx, 0x65
cmp dword [esp + 0x24], 0
mov ecx, ebx
push eax
push dword [esp + 0x44]
mov eax, 0x62
cmovne edx, eax
call fcn.0044e020
add esp, 8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x490e93
mov esi, dword [eax]
mov ecx, edi
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
push eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
call fcn.00462140
mov al, byte [esi]
add esp, 4
cmp al, 0x4f
je 0x490e6e
cmp al, 0x4d
je 0x490e6e
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
setne al
lea eax, [eax*2 + 0x4d]
jmp 0x490e80
mov ecx, dword [esp + 0x24]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 0x4e]
mov esi, dword [esp + 0x48]
mov ecx, esi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
call fcn.0048fba0
cmp dword [esp + 0x24], 0
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esp + 0x40]
sete al
add al, 6
mov dword [esi + 0x24], edx
mov byte [esi + 0x21], al
mov dword [esi + 0x28], ecx
mov esi, dword [esp + 0x20]
cmp esi, 0x95
je 0x491a2a
mov ecx, edi
call fcn.004633a0
push eax
push edx
mov edx, 0x60
mov dword [esp + 0x6c], eax
mov ecx, ebx
call fcn.0044e020
push dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00460ab0
push dword [esp + 0x74]
mov edx, esi
mov ecx, ebx
push dword [esp + 0x2c]
push dword [esp + 0x50]
call fcn.0044df00
mov ecx, dword [ebx + 4]
add esp, 0x1c
test ecx, ecx
je 0x491a2a
mov eax, dword [ebx + 0x1c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x6b
jmp 0x491a2a
test edx, 0x200
je 0x49144e
mov edi, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x44], edi
mov edi, dword [esi + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 0
test byte [edi + 0x22], 1
mov edi, dword [esp + 0x34]
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], 0
je 0x490f99
mov edi, dword [esp + 0x50]
cmp byte [edi + 0x24], 0
mov edi, dword [esp + 0x34]
je 0x490f99
mov eax, dword [esp + 0x44]
movzx eax, word [eax + 0x2e]
cmp eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
jle 0x490f99
mov dword [esp + 0x2c], 1
mov dword [esp + 0x1c], 1
mov dword [esp + 0x38], eax
test dl, 0x20
je 0x490fc2
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x38], eax
mov eax, 1
jmp 0x490fc6
mov eax, dword [esp + 0x1c]
test dl, 0x10
je 0x490fde
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov eax, 1
lea ecx, [esp + 0x60]
mov edx, esi
push ecx
push eax
push dword [esp + 0x2c]
mov ecx, edi
call fcn.0048ff20
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
call fcn.004315b0
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
movzx edx, word [ecx + 0x2e]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
cmp eax, edx
jge 0x491055
mov ecx, dword [ecx + 0x1c]
xor edx, edx
cmp byte [eax + ecx], dl
mov ecx, dword [esp + 0x24]
sete dl
cmp ecx, edx
je 0x491043
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x49105b
cmp edx, eax
jne 0x49105b
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], edx
jmp 0x491063
mov ecx, dword [esp + 0x24]
jmp 0x49103b
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x491075
test byte [edx + 0x12], 0x28
mov dword [esp + 0x1c], 0
je 0x49107d
mov dword [esp + 0x1c], 1
test ecx, ecx
je 0x49108f
test byte [ecx + 0x12], 0x28
mov dword [esp + 0x28], 0
je 0x491097
mov dword [esp + 0x28], 1
test edx, edx
jne 0x4910e6
test eax, eax
jg 0x4910e6
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x2c], 0
je 0x4911a5
add eax, dword [esp + 0x34]
mov edx, 0x18
push eax
push 0
mov ecx, ebx
call fcn.0044e020
mov eax, dword [esp + 0x18]
add esp, 8
inc eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 1
jmp 0x4911a9
mov dword [esp + 0x38], 1
mov dword [esp + 0x14], eax
test edx, edx
je 0x4910a7
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
mov edx, ecx
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
mov ecx, edi
push eax
mov dword [esp + 0x30], eax
call fcn.00462140
mov eax, dword [esp + 0x18]
add esp, 4
lea esp, [esp]
mov cl, byte [eax]
cmp cl, 0x9d
je 0x49112c
cmp cl, 0x9c
jne 0x491131
mov eax, dword [eax + 0xc]
jmp 0x491120
mov cl, byte [eax]
cmp cl, 0x84
jne 0x49113b
mov cl, byte [eax + 0x26]
cmp cl, 0x5e
je 0x49115c
cmp cl, 0x80
jbe 0x49114a
cmp cl, 0x83
jbe 0x49115c
push dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.0045f940
add esp, 4
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x49119a
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov dl, byte [eax]
call fcn.0045e0c0
cmp al, 0x62
mov eax, dword [esp + 0x44]
jne 0x491184
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x14]
call fcn.0045f990
test eax, eax
je 0x49119a
mov eax, dword [esp + 0x44]
mov byte [eax], 0x62
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x14], eax
jmp 0x4911a9
mov eax, dword [esp + 0x14]
push dword [esp + 0x60]
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
call fcn.0048fbf0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x28]
push dword [esp + 0x40]
push dword [esp + 0x30]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x2c]
movzx edx, byte [ecx + eax*2 + 0x5b0768]
mov ecx, ebx
call fcn.0044e190
mov eax, dword [esp + 0x48]
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x4912cd
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
add eax, ecx
mov ecx, edi
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.00460bf0
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, edi
push dword [esp + 0x2c]
call fcn.00462140
mov eax, dword [esp + 0x18]
add esp, 4
mov cl, byte [eax]
cmp cl, 0x9d
je 0x491242
cmp cl, 0x9c
jne 0x491247
mov eax, dword [eax + 0xc]
jmp 0x491236
mov cl, byte [eax]
cmp cl, 0x84
jne 0x491251
mov cl, byte [eax + 0x26]
cmp cl, 0x5e
je 0x491272
cmp cl, 0x80
jbe 0x491260
cmp cl, 0x83
jbe 0x491272
push dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.0045f940
add esp, 4
cmp dword [esp + 0x68], 0
je 0x4912b1
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dl, byte [eax]
call fcn.0045e0c0
cmp al, 0x62
mov eax, dword [esp + 0x1c]
jne 0x49129b
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x14]
call fcn.0045f990
test eax, eax
je 0x4912b1
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x62
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x68]
mov edx, dword [esp + 0x38]
inc eax
push eax
mov dword [esp + 0x34], eax
call fcn.0048fbf0
add esp, 8
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
call fcn.00431240
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
call fcn.00431240
cmp dword [esp + 0x30], 0
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x28], eax
jne 0x4912ff
cmp dword [esp + 0x10], 0
jne 0x4912ff
xor ecx, ecx
jmp 0x491304
mov ecx, 1
mov eax, dword [esp + 0x24]
inc eax
imul eax, ecx
movzx edx, byte [eax + 0x5af05c]
cmp edx, 0x95
je 0x491351
push dword [esp + 0x2c]
mov ecx, ebx
push dword [esp + 0x38]
push dword [esp + 0x28]
push dword [esp + 0x24]
call fcn.0044e190
mov edx, dword [ebx + 4]
add esp, 0x10
test edx, edx
je 0x491351
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x24]
mov eax, dword [ebx + 0x1c]
setne cl
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], cl
mov al, byte [edi + 0x13]
test al, al
jne 0x491360
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
jmp 0x49136c
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x1c]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
test byte [ecx + 0x24], 0x30
je 0x4913a9
push eax
push dword [esp + 0x14]
mov edx, 0x29
mov ecx, ebx
push dword [esp + 0x20]
call fcn.0044df00
add esp, 0xc
mov edx, 0x49
mov ecx, ebx
push dword [esp + 0x7c]
push dword [esp + 0x20]
call fcn.0044e020
add esp, 8
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.004633c0
mov edx, dword [esp + 0x3c]
mov ecx, esi
call fcn.0048fba0
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.0048fba0
cmp dword [esp + 0x80], 0
jne 0x491418
mov ecx, edi
call fcn.004633a0
push eax
push dword [esp + 0x1c]
mov edx, 0x69
mov dword [esp + 0x6c], eax
mov ecx, ebx
call fcn.0044e020
push dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov ecx, edi
push 0xffffffffffffffff
call fcn.00460ab0
push dword [esp + 0x74]
mov edx, 0x3b
mov ecx, ebx
push dword [esp + 0x54]
call fcn.0044e020
add esp, 0x18
mov ecx, dword [esp + 0x4c]
test dword [ecx + 0x24], 0x1000
je 0x49142b
mov byte [esi + 0x21], 0x95
jmp 0x491438
cmp dword [esp + 0x24], 0
sete al
add al, 6
mov byte [esi + 0x21], al
mov eax, dword [esp + 0x18]
mov dword [esi + 0x24], eax
test byte [ecx + 0x24], 0xf
jne 0x491a2a
jmp 0x491a26
test edx, 0x2000
je 0x4919f8
mov eax, dword [edi + 0x48]
mov ecx, ebx
inc dword [edi + 0x4c]
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], 0
call fcn.0044e200
mov ecx, dword [esp + 0x4c]
xor edx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x24], edx
mov ecx, dword [ecx + 0x2c]
mov eax, dword [ecx]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x50]
mov byte [esi + 0x21], 0x10
mov cl, byte [eax + 0x28]
cmp cl, 1
jbe 0x4915c6
movzx ecx, cl
sub ecx, dword [esp + 0x1c]
dec ecx
mov dword [esp + 0x80], ecx
lea ecx, [ecx + ecx*8]
lea edx, [ecx*8 + 0x50]
mov ecx, dword [esp + 0x5c]
call fcn.00431490
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x491513
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.00564de8
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x80]
mov al, dl
inc al
mov byte [ecx + 1], al
mov byte [ecx], al
mov eax, dword [esp + 0x30]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx + 8], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ecx + 0x18], xmm0
movdqu xmm0, xmmword [eax + 0x20]
movdqu xmmword [ecx + 0x28], xmm0
movdqu xmm0, xmmword [eax + 0x30]
movdqu xmmword [ecx + 0x38], xmm0
movq xmm0, qword [eax + 0x40]
mov eax, dword [esp + 0x50]
movq qword [ecx + 0x48], xmm0
mov eax, dword [eax + 4]
add eax, 8
mov dword [esp + 0x28], eax
cmp edx, 1
jl 0x4915cd
mov ebx, dword [esp + 0x28]
lea eax, [esi + 0x60]
add ecx, 0x50
mov esi, eax
movzx eax, byte [esi]
lea esi, [esi + 0x40]
lea ecx, [ecx + 0x48]
lea eax, [eax + eax*8]
movdqu xmm0, xmmword [ebx + eax*8]
movdqu xmmword [ecx - 0x48], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x10]
movdqu xmmword [ecx - 0x38], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x20]
movdqu xmmword [ecx - 0x28], xmm0
movdqu xmm0, xmmword [ebx + eax*8 + 0x30]
movdqu xmmword [ecx - 0x18], xmm0
movq xmm0, qword [ebx + eax*8 + 0x40]
movq qword [ecx - 8], xmm0
dec edx
jne 0x491577
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
jmp 0x4915cd
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x22], 8
jne 0x4915fb
mov eax, dword [edi + 0x4c]
mov edx, 0x18
inc eax
push eax
push 0
mov dword [esp + 0x1c], eax
lea ecx, [eax + 1]
mov dword [esp + 0x34], ecx
mov dword [edi + 0x4c], ecx
mov ecx, ebx
call fcn.0044e020
add esp, 8
push dword [esp + 0x38]
mov edx, 0x15
mov ecx, ebx
push 0
call fcn.0044e020
mov ecx, dword [esp + 0x60]
add esp, 8
mov dword [esp + 0x70], eax
mov ecx, dword [ecx + 0xc]
cmp ecx, 1
jle 0x49176e
xor edx, edx
mov dword [esp + 0x80], edx
test ecx, ecx
jle 0x49176e
mov edi, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x28], ecx
xor esi, esi
mov eax, dword [edi + 0x14]
add eax, ecx
mov ebx, dword [eax]
mov dword [esp + 0x20], ebx
cmp eax, dword [esp + 0x4c]
je 0x491696
test byte [ebx + 4], 1
jne 0x491696
test byte [eax + 0x14], 0x10
jne 0x491696
mov ebx, 0xfff
test word [eax + 0x12], bx
je 0x491696
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x5c]
push 0
push 0
call fcn.0045ec20
mov ecx, dword [esp + 0x64]
mov edx, esi
push eax
call fcn.0045e710
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x80]
mov esi, eax
inc edx
add ecx, 0x30
mov dword [esp + 0x80], edx
mov dword [esp + 0x28], ecx
cmp edx, dword [edi + 0xc]
jl 0x491641
mov ebx, dword [esp + 0x54]
mov ecx, esi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x48]
test ecx, ecx
je 0x491770
mov ecx, dword [edi]
mov edx, 0x30
call fcn.00431490
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x4916fc
push 0x30
push 0
push ecx
call fcn.0056cbb0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
or eax, 0xffffffff
mov byte [ecx], 0x45
mov word [ecx + 0x22], ax
mov dword [ecx + 0x18], 1
mov eax, dword [edi]
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x49172e
xor edx, edx
mov ecx, eax
call fcn.0045eaf0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
call fcn.0045eaf0
mov eax, dword [esp + 0x20]
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x491770
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x10], edx
mov eax, dword [edx + 4]
and eax, 0x100
or dword [ecx + 4], eax
call fcn.0045e3a0
mov eax, dword [edi]
mov ecx, dword [eax + 0x64]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], ecx
jle 0x491766
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.00433620
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x491770
xor ecx, ecx
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edx + 0xc], eax
jle 0x491922
mov dword [esp + 0x80], 0x200
mov dword [esp + 0x6c], 1
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [edx + 0x14]
mov edx, dword [esp + 0x40]
cmp dword [eax + 8], edx
je 0x4917b9
mov edx, dword [esp + 0x80]
test word [eax + 0x12], dx
je 0x491904
mov eax, dword [eax]
test ecx, ecx
je 0x4917ca
test byte [eax + 4], 1
jne 0x4917ca
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0xf0
push 0
push 0
push eax
call fcn.00494780
add esp, 0x14
mov dword [esp + 0x34], eax
test eax, eax
je 0x491904
movzx ecx, byte [esi + 0x20]
mov edx, dword [esp + 0x18]
push 0
push ecx
push dword [esp + 0x24]
lea ecx, [eax + 0x2d8]
push ecx
mov ecx, edi
call fcn.004903d0
mov eax, dword [esp + 0x60]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x49186b
mov eax, dword [esp + 0x68]
mov ecx, edi
mov esi, dword [esp + 0x20]
push 0
push dword [esp + 0x30]
mov eax, dword [eax + 0xc]
push dword [esp + 0x48]
dec eax
cmp esi, eax
mov eax, 0xffffffff
push eax
cmove esi, eax
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x10]
call fcn.00460dd0
push esi
push eax
mov eax, dword [ebx + 0x1c]
mov edx, 0x78
add eax, 2
mov ecx, ebx
push eax
push dword [esp + 0x30]
call fcn.0044e190
mov esi, dword [esp + 0x68]
add esp, 0x20
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [ebx + 0x20], eax
jg 0x491886
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x4918ba
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
cmp byte [ecx + 0x26], 0
cmovne eax, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x30c]
test dword [eax + 0x24], 0x200
je 0x4918f7
cmp dword [esp + 0x20], 0
je 0x4918ee
mov edx, dword [esp + 0x60]
cmp dword [eax + 0x1c], edx
jne 0x4918f7
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], eax
jmp 0x4918ff
mov dword [esp + 0x60], 0
call fcn.00495070
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
jl 0x491796
mov eax, dword [esp + 0x60]
mov dword [esi + 0x2c], eax
test eax, eax
je 0x491934
mov eax, dword [esp + 0x3c]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x24]
test edx, edx
je 0x49194c
mov ecx, dword [esp + 0x5c]
mov dword [edx + 0xc], 0
call fcn.0045eaf0
mov edx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x70]
cmp edx, eax
jbe 0x491961
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x70], eax
cmp dword [ebx + 0x20], eax
jg 0x491983
mov ecx, ebx
call fcn.0044de80
test eax, eax
jne 0x4919b7
mov eax, dword [esp + 0x70]
inc dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
or edx, 0xffffffff
sub edx, dword [esp + 0x10]
js 0x4919cd
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x4919cd
mov eax, dword [ebx + 0x1c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x50]
cmp byte [eax + 0x28], 1
jbe 0x4919e4
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
call fcn.00431240
cmp dword [esp + 0x44], 0
jne 0x491a2a
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.0048fba0
jmp 0x491a2a
mov ecx, dword [esp + 0x24]
push dword [esp + 0x18]
mov al, byte [ecx + 0x5ad660]
movzx edx, byte [ecx + 0x5ad188]
mov ecx, ebx
mov byte [esi + 0x21], al
mov eax, dword [esp + 0x44]
push eax
mov dword [esi + 0x24], eax
call fcn.0044e020
add esp, 8
inc eax
mov dword [esi + 0x28], eax
mov byte [esi + 0x22], 1
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 0x14]
mov dword [esp + 0x80], edx
test edx, edx
jle 0x491aa7
mov ebx, dword [esp + 0x48]
test byte [esi + 0x14], 6
jne 0x491a90
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x38]
and eax, dword [ebx + 0x3c]
or ecx, eax
je 0x491a63
mov eax, dword [esp + 0x50]
mov byte [eax + 0x26], 1
jmp 0x491a90
cmp dword [ebx], 0
mov eax, dword [esi]
je 0x491a70
test byte [eax + 4], 1
je 0x491a90
push 8
push dword [esp + 0x80]
mov edx, eax
mov ecx, edi
call fcn.00462950
mov edx, dword [esp + 0x88]
add esp, 8
or byte [esi + 0x14], 4
dec edx
add esi, 0x30
mov dword [esp + 0x80], edx
test edx, edx
jg 0x491a43
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x491ba2
mov ebx, dword [esp + 0x48]
mov ecx, 0x402
test byte [esi + 0x14], 6
jne 0x491b8e
cmp word [esi + 0x12], cx
jne 0x491b8e
mov ecx, dword [esp + 0x40]
cmp dword [esi + 8], ecx
jne 0x491b89
cmp dword [ebx], 0
jne 0x491b89
mov eax, dword [esi]
mov edx, ecx
mov ecx, dword [esp + 0x58]
push 0
push 3
push dword [ebp + 0xc]
mov dword [esp + 0x78], eax
push dword [ebp + 8]
push dword [esi + 0xc]
call fcn.0048d8d0
add esp, 0x14
mov dword [esp + 0x70], eax
test eax, eax
je 0x491b85
test byte [eax + 0x14], 4
jne 0x491b85
mov ecx, dword [esp + 0x5c]
mov edx, 0x30
call fcn.00431490
mov edx, eax
mov dword [esp + 0x80], edx
test edx, edx
je 0x491b85
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push 8
push dword [esp + 0x80]
mov ecx, dword [ecx]
movdqu xmm0, xmmword [ecx]
movdqu xmmword [edx], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
movdqu xmmword [edx + 0x10], xmm0
movdqu xmm0, xmmword [ecx + 0x20]
mov ecx, edi
movdqu xmmword [edx + 0x20], xmm0
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
call fcn.00462950
mov edx, dword [esp + 0x88]
add esp, 8
mov ecx, dword [esp + 0x5c]
call fcn.00431240
mov eax, dword [esp + 0x18]
mov ecx, 0x402
dec eax
add esi, 0x30
mov dword [esp + 0x18], eax
test eax, eax
jg 0x491ac2
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x491cca
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x18], eax
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x70], ecx
cmp eax, ecx
jg 0x491c2e
test eax, eax
je 0x491bd0
add eax, eax
jmp 0x491bd5
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ebx]
shl eax, 2
push eax
call fcn.00431510
mov esi, eax
add esp, 4
test esi, esi
je 0x491c62
mov eax, dword [ebx]
test eax, eax
je 0x491c0e
cmp esi, dword [eax + 0x10c]
jb 0x491c0e
cmp esi, dword [eax + 0x110]
jae 0x491c0e
movzx ecx, word [eax + 0xf0]
jmp 0x491c1a
push esi
call dword [0x5e3f6c]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mov dword [ebx + 4], esi
mul ecx
mov ecx, dword [esp + 0x70]
shr edx, 4
mov dword [ebx + 0x20], edx
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0x1c]
mov edx, dword [esp + 0x6c]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edi
call fcn.00460e70
mov edx, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [edx + 0x14]
cmp dword [edx + 0xc], ebx
jle 0x491cc6
mov eax, edx
lea esp, [esp]
test byte [esi + 0x14], 6
mov edx, dword [esp + 0x48]
jne 0x491cbb
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x38]
and eax, dword [edx + 0x3c]
or ecx, eax
jne 0x491cb7
mov edx, dword [esi]
mov ecx, edi
push 8
push dword [esp + 0x80]
call fcn.00462950
mov edx, dword [esp + 0x50]
add esp, 8
or byte [esi + 0x14], 4
mov eax, dword [esp + 0x58]
inc ebx
add esi, 0x30
cmp ebx, dword [eax + 0xc]
jl 0x491c80
jmp 0x491cca
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x64]
test esi, esi
je 0x491cfe
mov bl, byte [edi + 0x13]
cmp bl, 8
jae 0x491cfe
xor ecx, ecx
lea eax, [edi + 0x68]
nop
cmp dword [eax + 0x10], esi
je 0x491cfa
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x491ce0
movzx eax, bl
mov dword [edi + eax*4 + 0x1c], esi
inc byte [edi + 0x13]
jmp 0x491cfe
mov byte [eax + 8], 1
mov ecx, dword [esp + 0x84]
mov eax, dword [edx + 0x38]
mov edx, dword [edx + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00564de8
mov esp, ebp
pop ebp
ret