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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x150
mov dword [esp + 0xe8], ecx
lea edi, [esp + 0x28]
mov dword [esp + 0xec], edx
mov ecx, edi
call fcn.00437480
mov eax, dword [esp + 0x28]
cmp eax, 2
jne 0x421430
mov esi, dword [esp + 0x2c]
push 9
push dword [esp + 0x34]
push edi
call fcn.004e6920
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp eax, 2
jne 0x421fec
mov edx, dword [esp + 0xec]
lea ecx, [esp + 0x28]
push esi
call fcn.00426e90
add esp, 4
mov esi, dword [esp + 0x28]
cmp esi, 2
jne 0x42206b
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
xor ebx, ebx
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 4
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], edx
jmp 0x4214c5
movsd xmm2, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x44]
movsd xmm0, qword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
movsd qword [esp + 0xb0], xmm2
movsd qword [esp + 0xb8], xmm1
movsd xmm2, qword [esp + 0x4c]
movsd xmm1, qword [esp + 0x54]
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0xc0], xmm2
movsd qword [esp + 0xc8], xmm1
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], ecx
jmp 0x42248d
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
lea ecx, [ebx + ebx*2]
inc ebx
mov dword [eax + ecx*4], edx
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edi
mov dword [esp + 0x8c], ebx
push dword [esp + 0x108]
push dword [esp + 0x108]
call fcn.004e54f0
add esp, 8
test eax, eax
je 0x422127
lea ecx, [esp + 0x28]
lea edx, [esp + 0x100]
call fcn.004360a0
mov eax, dword [esp + 0x28]
cmp eax, 2
jne 0x4220bd
mov esi, dword [esp + 0x2c]
push 0xa
push dword [esp + 0x34]
lea eax, [esp + 0x30]
push eax
call fcn.004e6920
add esp, 0xc
mov eax, dword [esp + 0x28]
cmp eax, 2
jne 0x4220bd
lea edx, [esp + 0x100]
lea ecx, [esp + 0x28]
push esi
call fcn.004267f0
add esp, 4
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
cmp ebx, 2
jne 0x4221f5
mov dword [esp + 0x10c], edx
xor edx, edx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x90], 0
mov dword [esp + 0x114], edi
mov dword [esp + 0x94], 4
mov dword [esp + 0xf0], 4
mov dword [esp + 0x78], 0
jmp 0x4216b8
mov edi, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
imul eax, edx, 0x38
or esi, dword [esp + 0xf4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x7c]
movaps xmm2, xmmword [esp + 0x130]
mov dword [esp + 0xf0], edi
mov dword [edi + eax], ecx
movzx ecx, byte [esp + 0x77]
shl ebx, 8
movd xmm1, edx
or ebx, ecx
mov ecx, dword [esp + 0xfc]
mov dword [edi + eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi + eax + 0xc], esi
mov esi, dword [esp + 8]
mov dword [edi + eax + 8], ecx
movzx ecx, byte [esp + 0x24]
mov dword [edi + eax + 0x10], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x5c], esi
mov byte [edi + eax + 0x14], cl
mov ecx, esi
mov word [edi + eax + 0x15], si
shr ecx, 0x10
mov byte [edi + eax + 0x17], cl
mov ecx, dword [esp + 0x60]
mov dword [edi + eax + 0x18], ecx
mov ecx, dword [esp + 0xf8]
movlps qword [edi + eax + 0x1c], xmm2
mov dword [edi + eax + 0x24], ecx
mov dword [edi + eax + 0x28], edx
mov dword [edi + eax + 0x2c], ebx
mov ebx, dword [esp + 0x10]
movd xmm0, ecx
movzx ecx, byte [esp + 0x24]
mov edx, dword [esp + 0xc]
punpcklqdq xmm1, xmm0
shufps xmm2, xmm1, 0x24
movaps xmmword [esp + 0xd0], xmm2
mov dword [edi + eax + 0x30], ebx
mov ebx, dword [esp + 0x80]
mov byte [esp + 7], cl
inc edx
mov byte [edi + eax + 0x34], bl
mov ebx, dword [esp + 0x70]
mov word [edi + eax + 0x35], bx
shr ebx, 0x10
mov byte [edi + eax + 0x37], bl
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x110]
and edi, 0xffffff00
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x114]
mov dword [esp + 0xc], edx
mov dword [esp + 0x98], edx
push edi
push ecx
call fcn.004e54f0
add esp, 8
test eax, eax
je 0x421a70
lea ecx, [esp + 0x28]
lea edx, [esp + 0x10c]
call fcn.00435db0
mov ebx, dword [esp + 0x28]
cmp ebx, 2
jne 0x421b0b
mov esi, dword [esp + 0x2c]
push 9
push dword [esp + 0x34]
lea eax, [esp + 0x30]
push eax
call fcn.004e6920
add esp, 0xc
mov ebx, dword [esp + 0x28]
cmp ebx, 2
jne 0x421b77
lea edx, [esp + 0x10c]
lea ecx, [esp + 0x28]
push esi
call fcn.00426b50
add esp, 4
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
cmp ebx, 2
jne 0x421be6
mov dword [esp + 0x118], esi
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], edi
lea ecx, [esp + 0x28]
lea edx, [esp + 0x118]
call fcn.004227e0
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
cmp ebx, 2
mov dword [esp + 0x18], eax
jne 0x421c51
mov dword [esp + 0x1c], edi
movzx eax, byte [esp + 0x38]
movzx edi, byte [esp + 0x3f]
movzx ebx, word [esp + 0x3d]
movsd xmm0, qword [esp + 0x48]
movzx esi, byte [esp + 0x3b]
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf4], eax
movzx eax, word [esp + 0x39]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x44]
movaps xmmword [esp + 0x130], xmm0
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x3c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x60], ebx
mov byte [esp + 0x77], al
mov dword [esp + 0xf8], edi
lea ecx, [esp + 0x28]
lea edx, [esp + 0x118]
call fcn.00434cf0
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
cmp ecx, 2
jne 0x4218c0
lea edx, [esp + 0x118]
lea ecx, [esp + 0x28]
push eax
call fcn.00425b50
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, 2
jne 0x421920
lea ecx, [esp + 0x34]
mov eax, dword [ecx]
movsd xmm0, qword [ecx - 8]
mov dword [esp + 0x12c], eax
movsd qword [esp + 0x124], xmm0
mov dword [esp + 0x30], eax
movsd qword [esp + 0x28], xmm0
mov edx, edi
lea eax, [esp + 0x28]
lea ecx, [esp + 0x9c]
push eax
call fcn.00411950
add esp, 4
cmp dword [esp + 0x9c], 2
jne 0x42198e
mov eax, dword [esp + 0xa0]
movzx ecx, word [esp + 0xad]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0xaf]
shl eax, 0x10
or ecx, eax
movzx eax, byte [esp + 0xac]
jmp 0x4219e3
lea edx, [esp + 0x34]
lea ebx, [esp + 0xa8]
movsd xmm2, qword [edx + 0x18]
movsd xmm1, qword [edx + 0x10]
movsd xmm0, qword [edx + 0x20]
movsd qword [ebx + 0x18], xmm2
movsd qword [ebx + 0x10], xmm1
movsd xmm2, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ebx + 0x20], xmm0
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm2
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], eax
jmp 0x42198e
lea edx, [esp + 0x34]
lea ebx, [esp + 0xa8]
mov ecx, dword [edx]
movsd xmm1, qword [edx + 0x14]
movsd xmm0, qword [edx - 8]
movsd xmm2, qword [edx + 0x1c]
mov dword [esp + 0x12c], ecx
mov ecx, dword [edx + 0x24]
movsd qword [ebx + 0x14], xmm1
movsd xmm1, qword [edx + 0xc]
movsd qword [esp + 0x124], xmm0
movsd qword [ebx + 0x1c], xmm2
movsd xmm2, qword [edx + 4]
mov dword [ebx + 0x24], ecx
movsd qword [ebx + 0xc], xmm1
mov ecx, dword [esp + 0x12c]
movsd xmm1, qword [esp + 0x124]
movsd qword [ebx + 4], xmm2
mov dword [ebx], ecx
movsd qword [ebx - 8], xmm1
mov dword [esp + 0x9c], eax
push dword [esp + 0x120]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004e4280
add esp, 0xc
mov eax, dword [esp + 0x2c]
movzx ecx, word [esp + 0x39]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x3b]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x30]
cmp ebx, 2
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x38]
jne 0x421d6d
mov edx, dword [esp + 0x70]
shl esi, 0x18
shl edx, 0x10
add dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
shl edx, 8
or esi, edx
mov edx, dword [esp + 8]
mov ebx, edx
mov byte [esp + 0x24], dl
shr edx, 8
cmp al, 0x17
mov dword [esp + 8], edx
je 0x421cb3
mov dword [esp + 0x80], eax
mov ebx, dword [esp + 0x11c]
mov eax, dword [esp + 0x120]
mov dword [esp + 0x70], ecx
mov edi, eax
push eax
push ebx
call fcn.004e54f0
add esp, 8
test eax, eax
jne 0x421d28
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x90]
jne 0x4215a0
lea ecx, [esp + 0x90]
call fcn.00439d50
mov edi, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
jmp 0x4215a7
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x28]
mov dword [esp + 8], edx
push dword [esp + 0xc]
call fcn.00411d30
add esp, 4
mov ebx, dword [esp + 0x28]
cmp ebx, 2
jne 0x421ef1
cmp dword [esp + 0xc], 2
jb 0x421adf
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 8]
lea esi, [eax - 1]
nop word [eax + eax]
mov edx, edi
add edi, 0x38
lea ecx, [esp + 0x28]
push edi
call fcn.00410aa0
add esp, 4
mov ebx, dword [esp + 0x28]
movzx eax, byte [esp + 0x2c]
cmp ebx, 2
jne 0x421f6d
cmp al, 0xff
jne 0x421fd7
dec esi
jne 0x421ab0
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov edx, eax
mov esi, ecx
mov dword [esp + 0x14], ecx
shrd esi, edi, 0x10
shr edx, 8
shr edi, 0x10
jmp 0x421e76
mov eax, dword [esp + 0x38]
movzx ecx, word [esp + 0x3d]
mov edx, dword [esp + 0x30]
movups xmm0, xmmword [esp + 0x44]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x80], eax
shr eax, 8
mov esi, edx
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x70], eax
movzx eax, byte [esp + 0x3f]
and esi, 0xffffff00
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
movzx eax, byte [esp + 0x3c]
mov byte [esp + 7], al
mov eax, dword [esp + 0x80]
jmp 0x421bd9
movzx eax, byte [esp + 0x3f]
mov edi, dword [esp + 0x38]
movzx ecx, word [esp + 0x3d]
mov edx, dword [esp + 0x30]
movups xmm0, xmmword [esp + 0x44]
shl eax, 0x10
mov esi, edx
movaps xmmword [esp + 0xd0], xmm0
or ecx, eax
mov eax, edi
and esi, 0xffffff00
shr eax, 8
mov dword [esp + 0x5c], ecx
mov ecx, edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
movzx eax, byte [esp + 0x3c]
mov byte [esp + 7], al
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
jmp 0x421dd0
mov eax, dword [esp + 0x38]
movzx ecx, word [esp + 0x3d]
movups xmm0, xmmword [esp + 0x44]
mov dword [esp + 0x18], esi
mov esi, edx
and esi, 0xffffff00
mov dword [esp + 0x80], eax
shr eax, 8
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x70], eax
movzx eax, byte [esp + 0x3c]
mov byte [esp + 7], al
movzx eax, byte [esp + 0x3f]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
jmp 0x421dd0
movzx eax, byte [esp + 0x3b]
movzx ecx, word [esp + 0x39]
movups xmm0, xmmword [esp + 0x44]
shl eax, 0x10
movaps xmmword [esp + 0xd0], xmm0
or ecx, eax
movzx eax, byte [esp + 0x3f]
mov dword [esp + 0x70], ecx
movzx ecx, word [esp + 0x3d]
shl eax, 0x10
or ecx, eax
movzx eax, byte [esp + 0x38]
mov dword [esp + 0x5c], ecx
movzx ecx, byte [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, esi
mov esi, dword [esp + 0x18]
jmp 0x421dc0
mov eax, dword [esp + 0x14]
movss xmm0, dword [esp + 0xf8]
movss xmm1, dword [esp + 0x7c]
or esi, dword [esp + 0xf4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x10]
movlhps xmm1, xmm0
movaps xmm0, xmmword [esp + 0x130]
mov edi, esi
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x20]
shufps xmm0, xmm1, 0x24
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x70], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x6c], eax
movzx eax, byte [esp + 0x77]
jmp 0x421dc0
push edi
push ebx
call fcn.004e54f0
add esp, 8
mov esi, eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x421d4e
push 1
push eax
push dword [esp + 0x84]
call fcn.004ed020
add esp, 0xc
mov ecx, esi
mov eax, esi
mov esi, dword [esp + 0x78]
mov edx, 0x15
mov ebx, 1
mov dword [esp + 0x18], edi
shr ecx, 8
mov dword [esp + 0x70], ecx
jmp 0x421dd0
mov edi, eax
movzx eax, byte [esp + 0x3f]
mov dword [esp + 0x70], ecx
movzx ecx, word [esp + 0x3d]
movzx edx, byte [esp + 0x3c]
movups xmm0, xmmword [esp + 0x44]
mov esi, dword [esp + 0x7c]
shl eax, 0x10
movaps xmmword [esp + 0xd0], xmm0
or ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], ecx
mov ecx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov esi, edx
mov byte [esp + 7], cl
and esi, 0xffffff00
mov ecx, dword [esp + 0x70]
movzx eax, al
or edx, esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x14], edx
shl ecx, 8
or eax, ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x18]
shr eax, 8
mov dword [esp + 0x20], eax
mov eax, esi
mov eax, dword [esp + 0x94]
shrd esi, edi, 0x10
shr edi, 0x10
mov dword [esp + 0x10], edi
mov dword [esp + 8], eax
cmp dword [esp + 0xc], 0
je 0x421e40
mov eax, dword [esp + 8]
lea edi, [eax + 0x2c]
jmp 0x421e29
add edi, 0x38
dec dword [esp + 0xc]
je 0x421e40
mov eax, dword [edi]
test eax, eax
je 0x421e20
push 1
push eax
push dword [edi - 4]
call fcn.004ed020
add esp, 0xc
jmp 0x421e20
mov eax, dword [esp + 0x90]
test eax, eax
je 0x421e5d
imul eax, eax, 0x38
push 4
push eax
push dword [esp + 0x10]
call fcn.004ed020
add esp, 0xc
mov edi, dword [esp + 0x10]
cmp ebx, 2
jne 0x4222bb
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x14]
shl edx, 8
movzx eax, al
movzx ecx, ch
or eax, edx
shl ecx, 8
mov dword [esp + 8], eax
mov eax, esi
shl eax, 0x10
or ebx, ecx
or ebx, eax
mov eax, esi
mov esi, edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], eax
shld edi, eax, 0x10
mov ebx, dword [esp + 0x110]
mov eax, dword [esp + 0x114]
mov dword [esp + 0x1c], eax
push eax
push ebx
call fcn.004e54f0
add esp, 8
test eax, eax
jne 0x422247
mov ebx, dword [esp + 0x8c]
cmp ebx, dword [esp + 0x84]
jne 0x4214a7
lea ecx, [esp + 0x84]
mov edx, ebx
call fcn.00439c10
jmp 0x4214a0
mov esi, dword [esp + 0x2c]
movzx ecx, word [esp + 0x3d]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
movups xmm0, xmmword [esp + 0x44]
mov eax, esi
movzx eax, byte [esp + 0x3f]
mov dword [esp + 0x18], esi
shr esi, 8
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x54]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x78], edx
mov dword [esp + 0x20], esi
mov esi, edx
mov dword [esp + 0x14], edx
shl eax, 0x10
mov dword [esp + 0x64], edi
or ecx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x40]
shrd esi, eax, 0x10
shr eax, 0x10
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x3c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x58]
mov byte [esp + 7], al
mov dword [esp + 0x68], ecx
jmp 0x421e0d
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x2f]
movzx ecx, word [esp + 0x2d]
mov edx, dword [esp + 0x38]
movups xmm0, xmmword [esp + 0x44]
mov esi, dword [esp + 0x32]
shl eax, 0x10
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x54]
movaps xmmword [esp + 0xd0], xmm0
or ecx, eax
movzx eax, byte [esp + 0x30]
mov dword [esp + 0x20], ecx
movzx ecx, word [esp + 0x3d]
mov dword [esp + 0x64], edx
mov dword [esp + 0x14], eax
mov ah, byte [esp + 0x31]
mov dword [esp + 0x78], eax
movzx eax, byte [esp + 0x3f]
shl eax, 0x10
or ecx, eax
movzx eax, word [esp + 0x36]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x40]
jmp 0x421f4f
mov al, 0xb
xor ebx, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x78], eax
jmp 0x421e0d
movzx ecx, byte [esp + 0x2e]
movzx edx, word [esp + 0x2c]
movsd xmm1, qword [esp + 0x37]
movsd xmm2, qword [esp + 0x3f]
movsd xmm0, qword [esp + 0x2f]
mov byte [esp + 0xa2], cl
mov word [esp + 0xa0], dx
movsd qword [esp + 0xab], xmm1
movsd xmm1, qword [esp + 0x47]
movsd qword [esp + 0xb3], xmm2
movsd xmm2, qword [esp + 0x4f]
movsd qword [esp + 0xa3], xmm0
movsd qword [esp + 0xbb], xmm1
movsd xmm1, qword [esp + 0x54]
movsd qword [esp + 0xc3], xmm2
movsd qword [esp + 0xc8], xmm1
mov dword [esp + 0x9c], eax
jmp 0x42248d
mov eax, dword [esp + 0x2c]
movzx ecx, word [esp + 0x3d]
movups xmm0, xmmword [esp + 0x44]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x3f]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x60], eax
movzx eax, byte [esp + 0x3c]
jmp 0x4223cb
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
movzx ecx, word [esp + 0x3d]
movups xmm0, xmmword [esp + 0x44]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x64], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x3f]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x60], eax
movzx eax, byte [esp + 0x3c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x58]
mov byte [esp + 7], al
mov dword [esp + 0x68], ecx
jmp 0x4222fa
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x104]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
push edi
push esi
mov dword [esp + 0x1c], ebx
call fcn.004e54f0
add esp, 8
test eax, eax
je 0x42253c
push edi
push esi
call fcn.004e54f0
add esp, 8
test ebx, ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x60], eax
je 0x422503
xor edi, edi
jmp 0x42218b
inc edi
cmp edi, dword [esp + 0x14]
je 0x422503
mov eax, dword [esp + 8]
lea edx, [edi + edi*2]
mov dword [esp + 0x20], edx
mov ebx, dword [eax + edx*4 + 8]
mov ecx, dword [eax + edx*4 + 4]
test ebx, ebx
mov dword [esp + 0xc], ecx
je 0x4221d0
mov eax, dword [esp + 0xc]
lea esi, [eax + 0x2c]
jmp 0x4221b6
add esi, 0x38
dec ebx
je 0x4221d0
mov eax, dword [esi]
test eax, eax
je 0x4221b0
push 1
push eax
push dword [esi - 4]
call fcn.004ed020
add esp, 0xc
jmp 0x4221b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx*4]
mov eax, dword [eax]
test eax, eax
je 0x422180
imul eax, eax, 0x38
push 4
push eax
push dword [esp + 0x14]
call fcn.004ed020
add esp, 0xc
jmp 0x422180
movzx esi, byte [esp + 0x3f]
mov dword [esp + 0x24], ecx
movzx ecx, word [esp + 0x3d]
mov eax, dword [esp + 0x38]
movups xmm0, xmmword [esp + 0x44]
shl esi, 0x10
mov dword [esp + 0x60], eax
movzx eax, byte [esp + 0x3c]
movaps xmmword [esp + 0xd0], xmm0
or ecx, esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x40]
mov byte [esp + 7], al
mov dword [esp + 0x64], esi
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x68], ecx
jmp 0x4222e7
push dword [esp + 0x1c]
push ebx
call fcn.004e54f0
add esp, 8
mov dword [esp + 0x60], eax
test edi, edi
je 0x42228c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
shld esi, eax, 0x10
lea edi, [ecx + 0x2c]
jmp 0x422276
add edi, 0x38
dec esi
je 0x42228c
mov eax, dword [edi]
test eax, eax
je 0x422270
push 1
push eax
push dword [edi - 4]
call fcn.004ed020
add esp, 0xc
jmp 0x422270
mov eax, dword [esp + 8]
test eax, eax
je 0x4222a6
imul eax, eax, 0x38
push 4
push eax
push dword [esp + 0x14]
call fcn.004ed020
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ebx, 1
mov dword [esp + 0x24], 0x15
mov edi, edx
jmp 0x4222e7
mov eax, dword [esp + 0x20]
movzx edx, byte [esp + 0x18]
movzx ecx, byte [esp + 0x14]
shld edi, esi, 0x10
shl esi, 0x10
shl eax, 8
or edx, eax
mov eax, dword [esp + 0x78]
movzx eax, ah
shl eax, 8
or ecx, eax
or ecx, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x88]
test ebx, ebx
je 0x422395
xor edi, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], esi
jmp 0x422329
mov ebx, dword [esp + 0x14]
inc edi
cmp edi, ebx
je 0x422395
lea ecx, [edi + edi*2]
mov ebx, dword [esi + ecx*4 + 8]
mov eax, dword [esi + ecx*4 + 4]
mov dword [esp + 8], ecx
test ebx, ebx
mov dword [esp + 0xc], eax
je 0x422370
mov eax, dword [esp + 0xc]
lea esi, [eax + 0x2c]
jmp 0x422356
add esi, 0x38
dec ebx
je 0x422370
mov eax, dword [esi]
test eax, eax
je 0x422350
push 1
push eax
push dword [esi - 4]
call fcn.004ed020
add esp, 0xc
jmp 0x422350
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 8]
lea eax, [esi + eax*4]
mov eax, dword [eax]
test eax, eax
je 0x422320
imul eax, eax, 0x38
push 4
push eax
push dword [esp + 0x14]
call fcn.004ed020
add esp, 0xc
jmp 0x422320
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4223b2
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push esi
call fcn.004ed020
add esp, 0xc
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
movzx eax, byte [esp + 7]
mov ebx, dword [esp + 0x10]
cmp esi, 2
jne 0x422410
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
mov eax, dword [esp + 0xe8]
movsd xmm0, qword [esp + 0xa0]
mov dword [eax + 0xc], ebx
movsd qword [eax + 4], xmm0
mov dword [eax], 2
jmp 0x4224fb
mov dword [esp + 0x18], esi
mov esi, edx
mov edx, ebx
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmmword [esp + 0xd0]
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0xac], edx
mov byte [esp + 0xb0], al
mov eax, dword [esp + 0x5c]
mov word [esp + 0xb1], ax
shr eax, 0x10
mov byte [esp + 0xb3], al
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x18]
movups xmmword [esp + 0xb8], xmm0
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], esi
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xec]
lea eax, [esp + 0x9c]
push dword [ecx + 8]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004e4280
add esp, 0xc
mov ecx, dword [esp + 0xe8]
movsd xmm1, qword [esp + 0x48]
movsd xmm2, qword [esp + 0x40]
mov eax, dword [esp + 0x58]
movsd xmm0, qword [esp + 0x50]
movsd qword [ecx + 0x20], xmm1
movsd xmm1, qword [esp + 0x38]
movsd qword [ecx + 0x18], xmm2
movsd xmm2, qword [esp + 0x28]
mov dword [ecx + 0x30], eax
movsd qword [ecx + 0x28], xmm0
movsd qword [ecx + 0x10], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [ecx], xmm2
movsd qword [ecx + 8], xmm1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov esi, 1
mov dword [esp + 0x24], 0x15
test eax, eax
je 0x42252d
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push dword [esp + 0x10]
call fcn.004ed020
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ebx, eax
mov dword [esp + 0x1c], eax
jmp 0x4223cb
mov eax, dword [esp + 8]
mov esi, 2
mov dword [esp + 0x24], eax
jmp 0x4223cb