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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1b4
mov ebx, edx
mov esi, ecx
cmp edx, 0x21
jae 0x489abf
cmp ebx, 2
jb 0x48a0af
mov ecx, ebx
mov edx, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x80], ebx
shr ecx, 1
cmp ebx, 0x12
mov ebp, ecx
lea eax, [esi + ecx*8]
mov dword [esp + 0xb0], ecx
cmovb ebp, ebx
sub edx, ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0xac], edx
nop word [eax + eax]
cmp ebp, 0xc
jbe 0x489120
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x38]
xor edx, edx
mov eax, dword [ebp + 0x64]
mov edi, dword [ebp + 0x60]
mov ecx, dword [ebp]
lea esi, [ebp + 0x60]
mov dword [esp + 0x60], esi
cmp eax, dword [ebp + 4]
mov eax, dword [ebp + 8]
setb dl
xor ebx, ebx
cmp edi, ecx
setb bl
cmove ebx, edx
mov edx, ebp
test bl, bl
cmovne edi, ecx
mov ecx, esi
cmovne edx, esi
cmovne ecx, ebp
movsd xmm0, qword [edx]
xor edx, edx
mov dword [esp + 0x6c], edi
mov ecx, dword [ecx + 4]
movsd qword [ebp], xmm0
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x50]
cmp ecx, dword [ebp + 0xc]
setb dl
xor ecx, ecx
cmp esi, eax
setb cl
cmove ecx, edx
lea edx, [ebp + 8]
test cl, cl
lea ecx, [ebp + 0x50]
mov dword [esp + 0x30], edx
cmovne esi, eax
mov eax, ecx
mov dword [esp + 0xc], ecx
cmovne eax, edx
mov dword [esp + 0x40], esi
mov edi, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], edi
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], ecx
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x48]
cmp eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
setb cl
xor edx, edx
cmp esi, eax
setb dl
cmove edx, ecx
lea ecx, [ebp + 0x48]
test dl, dl
lea edx, [ebp + 0x10]
mov dword [esp + 0x5c], ecx
cmovne esi, eax
mov eax, ecx
mov dword [esp + 0x58], edx
cmovne eax, edx
mov dword [esp + 0x50], esi
mov edi, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
xor ebx, ebx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], edi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
mov dword [esp + 8], eax
mov dword [esp + 0x20], ecx
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x1c]
mov esi, edx
setb bl
xor eax, eax
cmp edx, ecx
lea edx, [ebp + 0x18]
setb al
mov dword [esp + 0x48], edx
cmove eax, ebx
test al, al
movzx eax, al
cmovne esi, ecx
lea ecx, [ebp + 0x38]
mov dword [esp + 0x44], ecx
cmovne ecx, edx
shl eax, 5
xor ebx, ebx
mov dword [esp + 0x1c], esi
mov edx, dword [ebp + eax + 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + eax + 0x1c]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x3c], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov eax, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x58]
cmp eax, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
mov esi, edx
setb bl
xor ecx, ecx
cmp edx, eax
lea edx, [ebp + 0x58]
setb cl
mov dword [esp + 0x10], edx
cmove ecx, ebx
test cl, cl
lea ecx, [ebp + 0x28]
cmovne esi, eax
mov eax, edx
mov dword [esp + 0x64], ecx
cmovne eax, ecx
mov dword [esp + 4], esi
mov edi, dword [eax + 4]
mov eax, ecx
cmovne eax, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x70], edi
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], edi
xor ecx, ecx
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x44]
mov edi, dword [ebp + 0x30]
mov edx, dword [ebp + 0x40]
cmp eax, dword [ebp + 0x34]
setb cl
xor eax, eax
cmp edx, edi
setb al
cmove eax, ecx
lea ecx, [ebp + 0x30]
test al, al
movzx eax, al
mov dword [esp + 0x18], ecx
cmovne edx, edi
lea edi, [ebp + 0x40]
mov dword [esp + 0x54], edi
cmovne edi, ecx
shl eax, 4
mov dword [esp], edx
xor ecx, ecx
mov ebx, dword [eax + ebp + 0x34]
mov edx, dword [eax + ebp + 0x30]
cmp ebx, dword [esp + 0x28]
setb cl
xor eax, eax
cmp edx, esi
setb al
cmove eax, ecx
mov ecx, edx
test al, al
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x18]
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], ebx
cmovne ecx, esi
cmovne esi, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x24], eax
cmovne edi, dword [esp + 0x30]
cmovne edx, ebx
xor eax, eax
mov ebx, dword [esp + 0x20]
cmp ecx, dword [esp + 8]
mov dword [esp + 0x28], edx
setb al
xor ecx, ecx
cmp esi, ebx
setb cl
cmove ecx, eax
mov eax, ebx
test cl, cl
mov ecx, esi
cmovne eax, esi
cmovne ecx, ebx
mov esi, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp]
mov ebx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x24]
cmovne ecx, dword [esp + 0x4c]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], ecx
mov edi, dword [edi + 4]
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], edi
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x34], edi
lea edi, [ebp + 0x20]
mov dword [esp + 0x4c], edi
cmovne eax, dword [esp + 0x58]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], ecx
mov ecx, dword [esp + 0x70]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x18], ebx
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x10]
mov dword [ebp + 0x1c], eax
mov dword [esp + 0x8c], eax
xor eax, eax
cmp ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
setb al
xor ecx, ecx
cmp esi, edx
setb cl
cmove ecx, eax
mov eax, ebx
test cl, cl
mov ecx, dword [esp + 0x1c]
cmovne eax, edi
cmovne esi, edx
cmovne edi, ebx
xor ebx, ebx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x7c], eax
setb bl
xor eax, eax
cmp edx, ecx
setb al
cmovne ebx, eax
mov eax, dword [esp + 0x24]
test bl, bl
movzx ebx, bl
cmove ecx, edx
cmovne edi, dword [esp + 0x44]
shl ebx, 4
xor edx, edx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x3c], eax
mov eax, dword [esp]
setb dl
xor ecx, ecx
cmp esi, eax
setb cl
cmovne edx, ecx
test dl, dl
movzx edx, dl
cmove eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x88]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x3c], eax
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 4]
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ecx
mov eax, dword [ebx + ebp + 0x3c]
mov ecx, dword [edi + 4]
mov edi, dword [ebx + ebp + 0x38]
mov dword [esp + 0x40], eax
mov dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x38], edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], edi
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x4c], ecx
cmovne eax, dword [esp + 0x54]
shl edx, 4
mov edi, dword [ebp + edx + 0x40]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + edx + 0x44]
xor edx, edx
mov dword [ebp + 0x40], edi
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x98], eax
mov dword [ebp + 0x44], eax
mov eax, dword [esp]
mov dword [esp + 0xa8], ecx
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ecx
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
cmp eax, edi
seta dl
xor ebx, ebx
cmp ecx, esi
seta bl
cmove ebx, edx
test bl, bl
mov ebx, dword [esp + 0x28]
cmovne eax, edi
mov edi, dword [esp + 8]
mov dword [esp + 0x70], eax
mov eax, esi
cmovne eax, ecx
cmovne ecx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x88], ecx
cmovne eax, ebp
xor ecx, ecx
cmp edi, ebx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x20]
setb cl
xor edx, edx
cmp eax, esi
setb dl
cmove edx, ecx
mov ecx, eax
test dl, dl
mov edx, dword [esp + 0x8c]
cmove eax, esi
cmovne ecx, esi
cmove edi, ebx
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], edi
mov edi, dword [esp + 0x98]
cmovne eax, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x74], edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x2c]
setb cl
xor edx, edx
cmp ebx, eax
setb dl
cmovne ecx, edx
test cl, cl
mov ecx, dword [esp + 0x48]
cmove eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov edx, eax
cmovne edx, ecx
cmovne ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp edi, esi
mov dword [esp + 0x34], edx
setb cl
xor edx, edx
cmp ebx, eax
setb dl
cmove edx, ecx
mov ecx, ebx
test dl, dl
mov edx, dword [esp + 0x1c]
cmovne ecx, eax
cmovne eax, ebx
cmovne esi, edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 4]
cmovne eax, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0x78]
setb bl
xor eax, eax
cmp ecx, edx
setb al
cmovne ebx, eax
mov eax, dword [esp + 0xc]
test bl, bl
mov dword [esp + 0x78], ebx
cmovne ecx, edx
mov dword [esp], ecx
cmovne eax, dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
cmp dword [esp + 0x84], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x88]
setb bl
mov dword [ebp], eax
mov eax, dword [esp + 0x70]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x9c]
mov dword [ebp + 0x24], edx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 8]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
mov dword [ebp + 8], eax
xor eax, eax
cmp edi, esi
setb al
cmovne ebx, eax
mov eax, dword [esp + 0x3c]
test bl, bl
cmove esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x50]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x14], ecx
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x60]
cmovne eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
xor eax, eax
cmp edi, edx
mov edx, dword [esp + 0x2c]
setb al
xor ecx, ecx
cmp edx, esi
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x28]
test al, al
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0x74]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], edi
mov eax, edx
cmovne eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0x3c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x40], eax
movzx eax, byte [esp + 0x78]
mov dword [ebp + 0x44], edx
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + eax*8 + 0x48]
mov eax, dword [ebp + eax*8 + 0x4c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov dword [ebp + 0x4c], eax
mov eax, dword [esp]
mov dword [ebp + 0x48], edi
mov dword [esp + 8], ecx
mov dword [ebp + 0x50], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x54], ecx
movzx ecx, bl
mov esi, dword [ebp + ecx*8 + 0x58]
mov edx, dword [eax + 4]
mov eax, dword [ebp + ecx*8 + 0x5c]
mov dword [esp + 0x24], esi
mov dword [ebp + 0x58], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x5c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x50], edx
mov ecx, esi
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
mov edx, dword [esp + 0x4c]
cmovne ecx, edx
mov eax, dword [ecx + 4]
mov ecx, edx
cmovne ecx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov edx, dword [ecx]
mov dword [esp + 0x78], edx
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x20], edx
mov dword [esp + 0x74], ecx
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], eax
xor ecx, ecx
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
cmp eax, esi
seta cl
xor ebx, ebx
cmp edx, edi
seta bl
cmove ebx, ecx
mov ecx, dword [esp + 0x5c]
test bl, bl
cmovne eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, edi
cmovne eax, edx
cmovne edx, edi
cmovne ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov eax, edx
mov dword [esp + 0x28], edx
xor edx, edx
cmp dword [esp + 0x6c], esi
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x40]
seta dl
xor ebx, ebx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x7c], ecx
seta bl
cmove ebx, edx
mov edx, dword [esp + 0x20]
test bl, bl
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [esp + 0x10]
cmove esi, dword [ebp + 0x44]
cmove edi, eax
cmove eax, dword [ebp + 0x40]
cmovne ecx, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edi
mov edi, dword [esp + 4]
mov esi, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x40], esi
cmp eax, dword [esp + 8]
mov eax, dword [esp]
mov dword [esp + 0x70], ecx
setb dl
xor ebx, ebx
cmp edi, eax
setb bl
cmovne edx, ebx
test dl, dl
cmovne edi, eax
mov eax, dword [esp + 0x1c]
mov ebx, edi
mov edi, dword [esp + 0x60]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x14]
cmovne edi, dword [esp + 0xc]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ecx
movzx ecx, dl
shl ecx, 4
mov edx, dword [edi + 4]
mov esi, dword [ecx + ebp + 0x50]
mov eax, dword [ecx + ebp + 0x54]
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], edx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x20]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
xor ebx, ebx
mov edi, dword [ebp + 4]
mov edx, dword [ebp]
cmp edi, esi
seta bl
xor ecx, ecx
cmp edx, eax
seta cl
cmove ecx, ebx
mov ebx, eax
test cl, cl
mov ecx, dword [esp + 0x64]
cmove esi, edi
mov edi, eax
cmove ebx, edx
cmovne edi, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 8], edi
cmovne ecx, ebp
mov eax, dword [ecx + 4]
mov dword [ebp], ebx
mov dword [ebp + 4], esi
mov dword [ebp + 0x28], edi
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov dword [ebp + 0x2c], eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
cmp edi, eax
seta bl
xor ecx, ecx
cmp edx, esi
seta cl
cmove ecx, ebx
mov ebx, eax
mov eax, esi
test cl, cl
mov ecx, dword [esp + 0x54]
cmove eax, edx
cmovne esi, edx
cmove ebx, edi
mov edi, dword [esp + 0x74]
mov edx, eax
mov dword [esp + 0x50], esi
cmovne ecx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x40], esi
mov esi, dword [esp + 0x78]
xor ebx, ebx
mov dword [ebp + 0x44], eax
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
cmp eax, edi
setb bl
xor ecx, ecx
cmp edx, esi
setb cl
cmove ecx, ebx
test cl, cl
mov ecx, edx
cmovne ecx, esi
cmovne esi, edx
mov edx, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
cmovne edx, eax
cmovne ecx, dword [esp + 0x4c]
xor eax, eax
cmp edi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x20], esi
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
setb al
mov dword [esp + 0x34], ecx
xor ecx, ecx
cmp edx, esi
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x18]
test al, al
cmovne edx, esi
mov esi, dword [esp]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov eax, edx
cmovne eax, ecx
cmovne ecx, edx
xor edx, edx
cmp dword [esp + 0x7c], esi
mov esi, dword [esp + 4]
seta dl
xor ebx, ebx
cmp edi, esi
seta bl
cmove ebx, edx
mov edx, dword [esp + 0x1c]
test bl, bl
cmove edi, esi
mov dword [ebp + 0x38], edx
mov edx, dword [esp + 0x34]
mov dword [ebp + 0x3c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov ebx, dword [ecx]
mov dword [esp + 0x74], ebx
mov eax, dword [ecx + 4]
mov dword [ebp + 0x30], ebx
mov ecx, esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x70], eax
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x58], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x5c], edx
cmove ecx, dword [ebp + 0x48]
cmovne eax, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov esi, dword [eax + 4]
mov eax, dword [esp]
mov dword [ebp + 0x48], ecx
mov ecx, dword [esp + 0x20]
cmove eax, dword [ebp + 0x4c]
mov dword [esp + 0x7c], esi
xor ebx, ebx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], esi
mov edi, dword [esp + 0x28]
mov dword [esp], eax
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
cmp esi, ecx
setb bl
xor eax, eax
cmp edx, edi
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x3c]
test al, al
mov eax, edx
cmovne eax, edi
cmovne ecx, esi
cmovne edi, edx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x74]
cmovne eax, ebp
xor ecx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x84]
setb cl
xor eax, eax
cmp edx, ebx
setb al
cmovne ecx, eax
mov eax, dword [esp + 0x64]
test cl, cl
mov ecx, dword [esp + 0x58]
cmovne edx, ebx
mov ebx, dword [esp + 4]
mov dword [esp + 8], edx
mov edx, eax
cmovne edx, ecx
cmovne ecx, eax
xor eax, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp]
mov dword [esp + 0x84], ecx
cmp edx, esi
setb al
xor ecx, ecx
cmp ebx, edi
setb cl
cmove ecx, eax
mov eax, ebx
test cl, cl
mov ecx, ebx
mov ebx, dword [esp + 0x44]
cmove ecx, edi
cmove edx, esi
mov esi, dword [esp + 0x5c]
cmovne eax, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp], edx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
cmovne esi, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x6c], ecx
setb al
xor ecx, ecx
cmp edi, edx
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x78]
test al, al
mov eax, dword [esp + 0x54]
cmove edx, edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x1c], edx
mov edx, eax
cmovne edx, ebx
cmovne ebx, eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x2c], edi
mov edi, dword [esp + 0x60]
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x6c], eax
setb dl
mov dword [ebp], ecx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x84]
mov ecx, dword [eax + 4]
mov dword [esp + 0x50], ecx
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov edi, dword [edi + 4]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edi
mov dword [ebp + 0x14], edi
mov edi, dword [esp + 8]
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x2c], ecx
mov edi, dword [esi + 4]
mov esi, dword [esp]
mov dword [ebp + 0x34], esi
mov esi, dword [esp + 4]
mov dword [esp + 0x20], edi
mov dword [ebp + 0x30], esi
mov esi, dword [esp + 0x24]
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
mov edi, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov ebx, dword [esp + 0x2c]
mov dword [ebp + 0x38], esi
mov esi, dword [esp + 0x14]
mov dword [ebp + 0x3c], ecx
xor ecx, ecx
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x34]
cmp esi, edi
mov dword [ebp + 0x44], eax
setb cl
cmovne edx, ecx
mov ecx, dword [esp + 0xc]
test dl, dl
mov edx, dword [esp + 0x10]
cmove edi, esi
mov eax, edx
cmove edx, ecx
mov esi, dword [edx]
cmovne eax, ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x28], esi
mov ecx, dword [edx + 4]
mov dword [ebp + 0x50], esi
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x48]
mov dword [ebp + 0x54], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], eax
xor eax, eax
mov edi, dword [ebp + 0x18]
cmp dword [ebp + 0x1c], ecx
setb al
xor ecx, ecx
cmp edi, esi
setb cl
cmove ecx, eax
mov eax, edx
test cl, cl
mov ecx, dword [esp + 0x30]
cmove esi, edi
mov dword [esp + 0x60], esi
cmovne eax, ecx
mov edi, dword [eax + 4]
mov eax, ecx
cmovne eax, edx
mov dword [esp + 0x40], edi
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 4]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x1c], edi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x84], eax
xor eax, eax
mov edi, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
cmp edi, esi
setb al
xor ecx, ecx
cmp edx, ebx
setb cl
cmove ecx, eax
mov eax, edx
test cl, cl
mov ecx, ebx
cmovne eax, ebx
cmovne esi, edi
mov edi, dword [esp + 0x4c]
cmovne ecx, edx
mov edx, dword [esp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
mov dword [esp + 0x2c], ecx
mov ebx, esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 4]
cmovne edi, dword [esp + 0x58]
xor ecx, ecx
cmp dword [esp + 0x50], eax
seta cl
xor eax, eax
cmp edx, esi
seta al
cmovne ecx, eax
mov eax, dword [esp + 0x2c]
test cl, cl
mov ecx, dword [edi + 4]
mov dword [ebp + 0x14], ebx
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
cmove edx, esi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
cmovne edi, dword [esp + 0x64]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x10]
cmove esi, dword [ebp + 0x28]
mov dword [esp + 4], esi
mov esi, dword [esp]
cmove esi, dword [ebp + 0x2c]
xor eax, eax
cmp dword [esp + 0x20], ecx
seta al
xor ecx, ecx
cmp edx, ebx
mov dword [esp], esi
seta cl
cmove ecx, eax
mov eax, dword [esp + 4]
test cl, cl
mov ecx, dword [edi + 4]
mov dword [ebp + 0x2c], esi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x84]
cmove edx, ebx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x34], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
cmove ecx, dword [ebp + 0x48]
cmovne eax, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
cmove eax, dword [ebp + 0x4c]
mov dword [esp + 0x10], eax
xor eax, eax
cmp edi, esi
setb al
xor ecx, ecx
cmp edx, ebx
setb cl
cmove ecx, eax
mov eax, edx
test cl, cl
cmovne eax, ebx
cmove edx, ebx
cmove edi, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x7c]
mov esi, dword [esi + 4]
cmove eax, dword [esp + 0x58]
xor ecx, ecx
cmp edx, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov dword [ebp + 0x4c], edx
mov edx, dword [esp + 0x28]
setb cl
mov dword [ebp + 0x48], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], esi
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x60]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], eax
xor eax, eax
cmp edx, esi
mov dword [esp + 0xc], ebx
setb al
cmovne ecx, eax
mov eax, dword [esp + 0x20]
test cl, cl
mov ecx, dword [esp + 0x48]
cmovne edx, esi
mov edi, edx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ebx
mov eax, edx
cmovne eax, ecx
mov esi, dword [eax + 4]
mov eax, ecx
cmovne eax, edx
xor ebx, ebx
mov dword [esp + 0x28], esi
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 4]
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x24], esi
mov dword [esp + 0x30], eax
mov edi, dword [esp + 4]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
cmp eax, ecx
mov dword [esp + 0x24], eax
mov esi, edx
setb bl
xor eax, eax
cmp edx, edi
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x1c]
test al, al
mov eax, dword [esp + 0x50]
cmovne esi, edi
cmovne ecx, dword [esp + 0x24]
cmovne edi, edx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x18]
mov dword [esp], ecx
mov ecx, dword [esp + 8]
cmovne esi, dword [esp + 0x64]
xor edx, edx
cmp dword [esp + 0x34], eax
setb dl
xor eax, eax
cmp ebx, ecx
mov esi, dword [esi + 4]
setb al
cmovne edx, eax
mov eax, dword [esp + 0x54]
test dl, dl
cmove ecx, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov edx, eax
cmovne edx, edi
cmovne edi, eax
mov eax, dword [esp + 0xc]
xor ebx, ebx
cmp eax, dword [esp + 0x30]
seta bl
xor eax, eax
cmp ecx, dword [esp + 0x10]
seta al
cmove eax, ebx
mov ebx, dword [esp]
test al, al
mov eax, dword [esp + 4]
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], esi
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], edx
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov edi, ebx
mov dword [esp + 0xc], eax
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
cmove ecx, eax
cmove edx, dword [esp + 0x48]
cmove eax, dword [ebp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 4]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 4]
cmove eax, dword [ebp + 0x14]
mov dword [esp + 0x58], ecx
xor ecx, ecx
cmp dword [esp + 0x28], ebx
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x14]
seta cl
xor ebx, ebx
cmp eax, edx
seta bl
cmove ebx, ecx
mov ecx, dword [esp + 0x20]
test bl, bl
cmove eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp + 0x58]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
cmove edx, dword [ebp + 0x20]
cmove edi, dword [ebp + 0x24]
cmovne ecx, dword [esp + 0x4c]
xor ebx, ebx
cmp eax, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp], edi
setb bl
xor edx, edx
cmp eax, esi
setb dl
cmove edx, ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 4]
mov dword [ebp + 0x24], edi
test dl, dl
mov edx, dword [esp + 0x14]
cmovne eax, esi
mov edi, eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x20], ecx
mov dword [esp + 0x30], ebx
mov dword [ebp + 0x28], edx
mov edx, dword [esp + 0x44]
mov dword [ebp + 0x2c], ebx
cmovne esi, dword [ebp + 0x38]
cmovne eax, dword [ebp + 0x3c]
cmovne edx, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0xc], eax
mov edx, dword [edx + 4]
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x3c], edx
cmp dword [ebp + 0x4c], eax
mov edi, dword [ebp + 0x48]
mov eax, dword [esp + 8]
setb bl
xor edx, edx
cmp edi, eax
setb dl
cmove edx, ebx
mov ebx, dword [esp + 0x54]
test dl, dl
cmove eax, edi
mov edi, dword [esp + 0x5c]
mov edx, edi
cmovne edx, ebx
cmovne ebx, edi
mov edi, dword [esp]
movsd xmm0, qword [ebx]
mov edx, dword [edx + 4]
movsd qword [ebp + 0x40], xmm0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
xor edx, edx
cmp dword [esp + 0x58], edi
mov eax, dword [esp + 0x20]
seta dl
xor ebx, ebx
cmp eax, ecx
seta bl
cmove ebx, edx
mov edx, dword [esp + 0x4c]
test bl, bl
mov ebx, dword [esp + 0xc]
cmove eax, ecx
cmove edi, dword [ebp + 0x1c]
cmove ecx, dword [ebp + 0x18]
cmovne edx, dword [esp + 0x48]
mov edx, dword [edx + 4]
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x20], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x30], ebx
seta dl
xor ecx, ecx
cmp edi, esi
seta cl
cmove ecx, edx
mov edx, ebx
test cl, cl
cmovne eax, dword [esp + 0x64]
cmove edx, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
mov dword [ebp + 0x2c], edx
mov edx, edi
cmove edx, esi
cmove esi, dword [ebp + 0x28]
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], ecx
mov ebp, dword [esp + 0x90]
mov edx, 0xd
jmp 0x4899e7
mov edx, 1
cmp ebp, 8
jbe 0x4899e7
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x38]
xor edx, edx
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp]
lea esi, [ebp + 0x18]
mov dword [esp + 0x4c], esi
cmp eax, dword [ebp + 4]
mov eax, dword [ebp + 8]
setb dl
xor ebx, ebx
cmp edi, ecx
setb bl
cmove ebx, edx
mov edx, ebp
test bl, bl
cmovne edi, ecx
mov ecx, esi
cmovne edx, esi
cmovne ecx, ebp
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x18], edi
mov ecx, dword [ecx + 4]
mov dword [ebp], esi
mov dword [ebp + 4], edx
mov dword [ebp + 0x18], edi
mov dword [esp + 0x10], edx
mov dword [esp + 4], esi
mov dword [ebp + 0x1c], ecx
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov edx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x38]
cmp edx, dword [ebp + 0xc]
setb cl
xor edx, edx
cmp esi, eax
setb dl
cmove edx, ecx
lea ecx, [ebp + 8]
test dl, dl
mov edx, esi
lea esi, [ebp + 0x38]
mov dword [esp + 0x2c], ecx
cmovne edx, eax
mov eax, ecx
mov dword [esp + 0x58], esi
cmovne eax, esi
mov dword [esp + 0xc], edx
movsd xmm0, qword [eax]
mov eax, esi
cmovne eax, ecx
xor ecx, ecx
mov esi, dword [eax + 4]
movsd qword [ebp + 8], xmm0
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x3c], esi
mov eax, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
setb cl
xor edx, edx
cmp ebx, eax
setb dl
cmove edx, ecx
lea ecx, [ebp + 0x28]
test dl, dl
lea edx, [ebp + 0x10]
mov dword [esp + 0x5c], ecx
cmovne ebx, eax
mov eax, ecx
mov dword [esp + 0x64], edx
cmovne eax, edx
mov dword [esp + 0x30], ebx
mov edi, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], edi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], edi
mov dword [esp], eax
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x40]
cmp eax, dword [ebp + 0x24]
setb dl
xor eax, eax
cmp edi, ecx
setb al
cmove eax, edx
lea edx, [ebp + 0x40]
test al, al
mov dword [esp + 0x54], edx
cmovne edi, ecx
lea ecx, [ebp + 0x20]
cmovne edx, ecx
mov dword [esp + 0x14], ecx
movzx ecx, al
mov dword [esp + 0x48], edi
xor eax, eax
mov edi, dword [esp + 4]
shl ecx, 5
cmp esi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x28], edx
mov ebx, dword [ecx + ebp + 0x24]
setb al
xor edx, edx
cmp esi, edi
setb dl
cmovne eax, edx
test al, al
mov eax, dword [esp + 0x58]
cmovne esi, edi
mov edi, dword [ecx + ebp + 0x20]
mov dword [esp + 0xc], esi
mov esi, dword [esp]
mov ecx, eax
cmovne ecx, ebp
mov dword [esp + 0x10], ecx
mov ecx, ebp
cmovne ecx, eax
xor edx, edx
cmp ebx, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 8]
setb dl
xor eax, eax
cmp edi, ecx
setb al
cmove eax, edx
test al, al
mov eax, dword [esp + 0x28]
cmovne esi, ebx
mov dword [esp], esi
mov edx, dword [eax + 4]
mov eax, edi
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x20], edi
mov ebx, dword [esp + 0x18]
cmovne eax, ecx
cmovne ecx, edi
mov edi, esi
mov esi, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], ecx
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], edx
cmovne eax, dword [esp + 0x64]
xor ecx, ecx
cmp edx, dword [esp + 0x44]
setb cl
xor edx, edx
cmp esi, ebx
setb dl
cmovne ecx, edx
test cl, cl
mov ecx, dword [esp + 0x10]
cmovne esi, ebx
mov dword [esp + 0x48], esi
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], ecx
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [ebp], ebx
mov dword [esp + 0x24], ebx
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x3c], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebp + 0x14], edi
mov edi, dword [esp + 8]
mov eax, dword [esp + 4]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x20], eax
mov dword [esp + 0x60], ecx
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x54]
mov eax, ecx
cmovne eax, edx
mov ebx, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ecx
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], ebx
mov dword [esp + 0x10], eax
xor eax, eax
lea esi, [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x20], esi
cmp dword [ebp + 0x34], ecx
mov ecx, dword [esp + 0x30]
setb al
xor ebx, ebx
cmp edx, ecx
setb bl
cmove ebx, eax
test bl, bl
cmovne esi, dword [esp + 0x5c]
cmove ecx, edx
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], esi
mov esi, dword [esp]
cmp esi, dword [esp + 0x18]
setb dl
xor eax, eax
cmp edi, ecx
setb al
cmove eax, edx
test al, al
mov eax, edi
cmove esi, dword [esp + 0x18]
cmovne eax, ecx
cmove edi, ecx
mov edx, eax
mov dword [esp + 0x28], eax
movzx eax, bl
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x10]
mov edi, dword [ebp + eax*8 + 0x28]
mov eax, dword [ebp + eax*8 + 0x2c]
mov ecx, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp], edi
mov esi, dword [esi + 4]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x34], esi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
cmovne eax, ebp
mov eax, dword [eax + 4]
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 8]
mov dword [ebp], ecx
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], eax
mov dword [esp + 0x24], eax
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
cmp ecx, ebx
seta al
xor edx, edx
cmp edi, esi
seta dl
cmove edx, eax
mov eax, esi
test dl, dl
cmovne ecx, ebx
cmovne eax, edi
cmovne edi, esi
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edi
cmovne eax, dword [esp + 0x2c]
xor edx, edx
cmp dword [esp + 0x60], ecx
seta dl
xor ecx, ecx
cmp esi, ebx
mov eax, dword [eax + 4]
mov dword [ebp + 8], edi
mov edi, dword [esp + 0x18]
seta cl
cmove ecx, edx
mov edx, dword [esp + 0x48]
test cl, cl
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], eax
cmove esi, ebx
mov dword [esp + 4], esi
mov dword [ebp + 0xc], ecx
mov ecx, dword [esp + 8]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x5c]
cmove ebx, dword [ebp + 0x20]
cmove edi, dword [ebp + 0x24]
cmovne eax, dword [esp + 0x14]
mov dword [esp], ebx
xor ebx, ebx
mov esi, dword [esp]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x44]
mov eax, dword [esp + 0xc]
setb bl
xor ecx, ecx
cmp edx, eax
setb cl
cmovne ebx, ecx
test bl, bl
mov dword [esp + 0x1c], ebx
cmovne edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], edx
cmovne eax, dword [esp + 0x58]
xor ecx, ecx
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
setb cl
xor edx, edx
cmp esi, eax
setb dl
cmove edx, ecx
mov ecx, dword [esp + 0x3c]
test dl, dl
mov ebx, dword [ecx + 4]
mov ecx, esi
mov dword [ebp + 0x20], esi
cmove esi, eax
mov dword [ebp + 0x24], edi
cmove edi, dword [esp + 0x10]
cmovne ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x1c]
cmovne eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
setb cl
xor edx, edx
cmp eax, esi
setb dl
cmovne ecx, edx
mov edx, dword [esp + 0x4c]
test cl, cl
mov ecx, dword [esp + 0x20]
cmove esi, eax
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
mov eax, ecx
cmovne eax, edx
cmovne edx, ecx
xor ecx, ecx
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + edi*8 + 0x3c]
mov edi, dword [ebp + edi*8 + 0x38]
cmp ebx, eax
mov ebx, eax
seta cl
xor eax, eax
cmp esi, edi
seta al
cmove eax, ecx
test al, al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x44], ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0xc], eax
mov eax, dword [esp]
mov dword [esp + 0x30], ecx
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x24], ecx
mov esi, dword [edx]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 4]
mov edx, ebx
mov ebx, dword [esp + 0x18]
mov dword [ebp + 0x18], esi
mov dword [esp + 0x10], esi
mov esi, dword [esp]
mov dword [esp + 0x34], eax
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [ebp + 0x34], ecx
mov ecx, dword [esp + 4]
cmove edx, dword [ebp + 0x2c]
cmovne eax, dword [esp + 0x5c]
cmove ecx, edi
cmove edi, dword [ebp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edx
mov eax, dword [eax + 4]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x38], ecx
xor edx, edx
mov dword [ebp + 0x3c], eax
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
cmp eax, ebx
mov dword [esp + 0x50], eax
seta dl
xor eax, eax
cmp ecx, esi
seta al
cmove eax, edx
mov edx, dword [esp + 0x44]
test al, al
mov eax, esi
cmovne eax, ecx
cmove esi, ecx
cmove ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x28]
cmovne eax, ebp
mov dword [esp + 0x50], eax
xor eax, eax
cmp ecx, dword [esp + 0x24]
setb al
xor ecx, ecx
cmp edx, ebx
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x14]
test al, al
mov eax, dword [esp + 0x64]
cmovne edx, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov edx, ecx
cmovne edx, eax
cmovne eax, ecx
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
cmp ebx, esi
mov dword [esp + 0x24], edx
setb cl
xor edx, edx
cmp edi, eax
setb dl
cmove edx, ecx
mov ecx, edi
test dl, dl
mov edx, dword [esp + 0x3c]
cmovne ecx, eax
cmove edi, eax
mov eax, dword [esp + 0x5c]
cmove ebx, esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x48]
cmovne eax, dword [esp + 0x4c]
xor ecx, ecx
cmp dword [esp + 0x60], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
setb cl
xor edx, edx
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov dword [ebp + 4], eax
mov eax, dword [esp]
mov dword [esp + 0x28], ebx
mov dword [ebp], eax
mov eax, dword [esp + 8]
cmp edi, eax
setb dl
cmovne ecx, edx
mov edx, dword [esp + 0x1c]
test cl, cl
cmove eax, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ebx
mov esi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x54]
cmovne eax, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x54], eax
movzx eax, cl
mov ecx, dword [esp + 0x10]
shl eax, 4
cmp dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
setb dl
xor eax, eax
cmp ecx, esi
setb al
cmove eax, edx
test al, al
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x24], edx
mov edi, dword [eax + 4]
mov eax, ecx
mov dword [ebp + 0x18], ecx
cmove ecx, esi
cmovne eax, esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x1c], eax
cmove eax, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], edi
cmovne eax, dword [esp + 0x64]
mov esi, dword [ecx + ebp + 0x34]
mov dword [esp + 0x24], eax
xor eax, eax
cmp edi, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
setb al
mov edi, dword [edx + 4]
mov edx, dword [ecx + ebp + 0x30]
mov ecx, dword [esp + 8]
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x30], edx
mov dword [esp], edx
mov edx, dword [esp + 0x44]
mov dword [ebp + 0x40], ecx
xor ecx, ecx
mov dword [ebp + 0x44], edi
mov edi, dword [esp + 0x14]
cmp ebx, edx
setb cl
cmovne eax, ecx
test al, al
mov eax, dword [esp + 0x5c]
cmovne ebx, edx
mov edx, dword [esp + 4]
mov dword [esp + 0x30], ebx
mov ecx, eax
cmovne ecx, edi
cmovne edi, eax
xor eax, eax
cmp dword [esp + 0x40], esi
mov esi, dword [esp + 0x10]
setb al
xor ebx, ebx
cmp edx, dword [esp]
setb bl
cmove ebx, eax
mov eax, dword [esp + 0x24]
test bl, bl
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], ebx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 8], ebx
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov edi, dword [esp]
mov dword [esp + 0x44], ecx
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0x20], eax
cmovne edx, edi
mov dword [ebp + 0x28], ecx
mov ecx, dword [esp + 0x58]
mov dword [ebp + 0x2c], ebx
mov ebx, dword [esp + 0x18]
cmovne edi, dword [ebp + 0x38]
cmovne ecx, dword [esp + 0x20]
cmovne ebx, dword [ebp + 0x3c]
mov dword [esp], edi
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x30], edi
mov edi, dword [esp + 0xc]
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], edx
mov dword [esp + 0x18], ebx
xor ebx, ebx
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x28], edi
mov dword [ebp + 0x3c], ecx
seta bl
xor ecx, ecx
cmp edx, esi
mov esi, dword [esp + 0x44]
seta cl
cmove ecx, ebx
mov ebx, edx
mov edx, dword [esp + 0x10]
test cl, cl
mov ecx, dword [esp + 0x64]
cmove edi, dword [ebp + 0xc]
cmove ebx, edx
cmove edx, dword [ebp + 8]
cmovne ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], edx
mov dword [ebp + 0x10], ebx
mov edx, dword [esp + 0x48]
mov edi, dword [esp]
mov dword [ebp + 0x14], ecx
xor ecx, ecx
cmp dword [esp + 0x54], esi
seta cl
xor ebx, ebx
cmp edx, eax
seta bl
cmove ebx, ecx
mov ecx, dword [esp + 0x14]
test bl, bl
cmove edx, eax
cmove eax, dword [ebp + 0x18]
cmovne ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x18], eax
mov eax, esi
mov esi, dword [esp + 0x18]
cmove eax, dword [ebp + 0x1c]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], edx
xor eax, eax
cmp dword [esp + 8], esi
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x24], ecx
mov esi, esi
seta al
xor ecx, ecx
cmp edx, edi
seta cl
cmove ecx, eax
mov eax, dword [esp + 0x20]
test cl, cl
mov ecx, edi
cmove ecx, dword [ebp + 0x28]
cmove esi, dword [ebp + 0x2c]
cmove edx, edi
cmovne eax, dword [esp + 0x5c]
mov eax, dword [eax + 4]
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], edx
mov edx, 9
mov dword [ebp + 0x34], eax
mov ebp, dword [esp + 0x90]
cmp edx, ebp
ja 0x48a0ba
jne 0x489a30
mov ebx, dword [esp + 0x80]
cmp ebx, 0x12
jb 0x48a0af
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0x94]
cmp dword [esp + 0x38], edx
mov dword [esp + 0x38], edi
je 0x4880c0
jmp 0x489f79
mov eax, dword [esp + 0x38]
lea ecx, [eax + ebp*8]
lea edi, [eax + edx*8]
shl edx, 3
mov ebp, 8
sub ebp, edx
mov dword [esp + 4], ecx
jmp 0x489a6b
mov ebp, dword [esp + 0x38]
mov dword [ebp + 4], ebx
mov dword [ebp], esi
mov ecx, dword [esp + 4]
mov ebp, dword [esp]
add edi, 8
add ebp, 0xfffffff8
cmp edi, ecx
je 0x4899f1
mov ebx, dword [edi + 4]
xor eax, eax
mov esi, dword [edi]
cmp ebx, dword [edi - 4]
setb al
xor edx, edx
cmp esi, dword [edi - 8]
setb dl
cmove edx, eax
cmp dl, 1
jne 0x489a61
mov dword [esp], ebp
mov edx, ebp
mov ebp, edi
nop
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test edx, edx
mov dword [ebp + 4], ecx
mov dword [ebp], eax
je 0x489a50
xor ecx, ecx
cmp ebx, dword [ebp - 0xc]
setb cl
xor eax, eax
cmp esi, dword [ebp - 0x10]
setb al
cmove eax, ecx
add ebp, 0xfffffff8
add edx, 8
test al, al
jne 0x489a90
jmp 0x489a54
mov ebp, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1c8]
mov dword [esp + 8], eax
jmp 0x489b61
mov esi, dword [esp + 0x14]
xor ecx, ecx
movsd xmm0, qword [ebp + edi*8]
cmp esi, edx
mov edx, dword [esp + 0xc]
movsd qword [eax], xmm0
mov dword [ebp + edi*8 + 4], esi
setb cl
mov dword [esp], ecx
xor ecx, ecx
cmp edx, dword [esp + 4]
mov dword [ebp + edi*8], edx
setb cl
cmove ecx, dword [esp]
movzx edx, cl
mov ecx, dword [esp + 0x68]
add edx, edi
cmp edx, ebx
jae 0x48a0ba
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + edx*8]
mov ebp, dword [esp + 0x18]
mov eax, edx
lea esi, [ecx + edx*8]
lea edi, [ecx + edx*8 + 8]
not eax
add ebx, eax
movsd qword [ecx], xmm1
movsd qword [ecx + edx*8], xmm0
push ebp
push dword [esp + 0xc]
call fcn.00488060
add esp, 8
mov dword [esp + 8], esi
mov esi, edi
cmp ebx, 0x21
jb 0x488077
sub ebp, 1
jb 0x489f6b
mov eax, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x68], esi
shr eax, 3
mov edx, eax
imul edi, eax, 0x38
shl edx, 5
add edi, esi
add edx, esi
cmp ebx, 0x40
jae 0x489c10
mov eax, dword [esp + 0x68]
mov ecx, dword [edx + 4]
xor ebx, ebx
mov esi, dword [eax]
mov eax, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov ebp, dword [eax + 4]
mov eax, dword [edx]
cmp ebp, ecx
mov dword [esp], eax
setb bl
xor ecx, ecx
cmp esi, eax
mov eax, dword [edi + 4]
setb cl
cmove ecx, ebx
xor ebx, ebx
cmp ebp, eax
mov ebp, dword [edi]
mov dword [esp + 0x38], eax
setb bl
xor eax, eax
cmp esi, ebp
mov esi, dword [esp + 0x68]
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x80]
cmp cl, al
mov eax, esi
jne 0x489c1c
mov eax, dword [esp + 0x38]
xor ebx, ebx
cmp dword [esp + 4], eax
setb bl
xor eax, eax
cmp dword [esp], ebp
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x80]
xor cl, al
cmovne edx, edi
mov eax, edx
jmp 0x489c1c
mov ecx, esi
push eax
push edi
call fcn.0048a130
add esp, 8
mov ecx, dword [esp + 8]
sub eax, esi
shr eax, 3
test ecx, ecx
je 0x489c57
mov edx, dword [ecx + 4]
mov edi, dword [esp + 0x68]
mov esi, dword [ecx]
xor ecx, ecx
cmp edx, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x68]
setb cl
xor edx, edx
cmp esi, dword [edi + eax*8]
mov esi, dword [esp + 0x68]
setb dl
cmove edx, ecx
cmp dl, 1
jne 0x489db0
cmp eax, ebx
jae 0x48a0ba
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + eax*8]
lea ecx, [esi + 0x10]
lea ebp, [esi + 8]
xor edi, edi
movsd qword [esi], xmm1
movsd qword [esi + eax*8], xmm0
mov eax, dword [esi + 8]
mov edx, dword [esi]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x14], eax
lea eax, [esi + ebx*8 - 8]
mov dword [esp], edx
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x489d40
xor edi, edi
nop word cs:[eax + eax]
nop
mov edx, dword [esp]
xor eax, eax
mov esi, dword [esp + 4]
movsd xmm0, qword [ebp + edi*8]
cmp dword [ecx + 4], edx
setb al
xor ebx, ebx
cmp dword [ecx], esi
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [ecx]
setb bl
cmove ebx, eax
movsd qword [ebp + edi*8], xmm0
xor eax, eax
movzx esi, bl
add esi, edi
cmp dword [ecx + 0xc], edx
mov edx, dword [esp + 4]
movsd xmm0, qword [ebp + esi*8]
setb al
xor ebx, ebx
cmp dword [ecx + 8], edx
movsd qword [ecx], xmm0
movsd xmm0, qword [ecx + 8]
setb bl
cmove ebx, eax
add ecx, 0x10
movzx edi, bl
movsd qword [ebp + esi*8], xmm0
add edi, esi
cmp ecx, dword [esp + 0x38]
jb 0x489cb0
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x68]
mov edx, dword [esp]
lea eax, [ecx - 8]
lea esi, [esi + ebx*8]
cmp ecx, esi
jne 0x489d4d
jmp 0x489ae0
mov eax, ebp
lea esi, [esi + ebx*8]
cmp ecx, esi
je 0x489ae0
mov dword [esp + 0x38], esi
mov esi, dword [esp + 4]
nop word cs:[eax + eax]
nop
mov ebx, dword [esp]
xor edx, edx
movsd xmm0, qword [ebp + edi*8]
cmp dword [ecx + 4], ebx
setb dl
xor ebx, ebx
cmp dword [ecx], esi
movsd qword [eax], xmm0
mov eax, ecx
movsd xmm0, qword [ecx]
lea ecx, [ecx + 8]
setb bl
cmove ebx, edx
mov edx, edi
movsd qword [ebp + edi*8], xmm0
movzx edi, bl
add edi, edx
cmp ecx, dword [esp + 0x38]
jne 0x489d60
mov ebx, dword [esp + 0x80]
mov edx, dword [esp]
add ecx, 0xfffffff8
mov eax, ecx
jmp 0x489ae0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + eax*8]
lea ecx, [esi + 8]
lea edi, [esi + ebx*8 - 8]
xor ebp, ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
movsd qword [esi], xmm1
movsd qword [esi + eax*8], xmm0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xc], edx
mov edx, dword [esi]
mov dword [esp + 0x14], ecx
lea ecx, [esi + 0x10]
cmp ecx, edi
mov dword [esp], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x38], edx
jae 0x489e87
xor ebp, ebp
nop word [eax + eax]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 4]
xor eax, eax
mov esi, dword [esp]
cmp edx, dword [ecx + 4]
movsd xmm0, qword [edi + ebp*8]
setae al
xor ebx, ebx
cmp esi, dword [ecx]
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [ecx]
setae bl
cmove ebx, eax
movsd qword [edi + ebp*8], xmm0
xor eax, eax
movzx esi, bl
add esi, ebp
cmp edx, dword [ecx + 0xc]
mov edx, dword [esp]
movsd xmm0, qword [edi + esi*8]
setae al
xor ebx, ebx
cmp edx, dword [ecx + 8]
movsd qword [ecx], xmm0
movsd xmm0, qword [ecx + 8]
setae bl
cmove ebx, eax
add ecx, 0x10
movzx ebp, bl
movsd qword [edi + esi*8], xmm0
add ebp, esi
cmp ecx, dword [esp + 8]
jb 0x489e00
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x38]
lea eax, [ecx - 8]
lea edi, [esi + ebx*8]
cmp ecx, edi
jne 0x489ea0
jmp 0x489ef0
mov eax, dword [esp + 4]
lea edi, [esi + ebx*8]
cmp ecx, edi
je 0x489ef0
nop word cs:[eax + eax]
nop dword [eax]
mov esi, dword [esp + 0x38]
xor edx, edx
cmp esi, dword [ecx + 4]
mov esi, eax
mov eax, dword [esp]
setae dl
xor ebx, ebx
cmp eax, dword [ecx]
mov eax, dword [esp + 4]
movsd xmm0, qword [eax + ebp*8]
setae bl
cmove ebx, edx
mov edx, ebp
movsd qword [esi], xmm0
movsd xmm0, qword [ecx]
movsd qword [eax + ebp*8], xmm0
movzx ebp, bl
mov eax, ecx
add ecx, 8
add ebp, edx
cmp ecx, edi
jne 0x489ea0
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
add ecx, 0xfffffff8
mov eax, ecx
jmp 0x489ef4
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
xor ecx, ecx
cmp edx, esi
mov edx, dword [esp + 4]
setae cl
xor ebx, ebx
cmp dword [esp], edi
movsd xmm0, qword [edx + ebp*8]
setae bl
cmove ebx, ecx
movsd qword [eax], xmm0
movzx eax, bl
mov ebx, dword [esp + 0x80]
mov dword [edx + ebp*8 + 4], esi
mov esi, dword [esp + 0x68]
mov dword [edx + ebp*8], edi
add eax, ebp
cmp eax, ebx
jae 0x48a0ba
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + eax*8]
mov ebp, dword [esp + 0x18]
lea ecx, [eax + 1]
mov dword [esp + 8], 0
sub ebx, ecx
movsd qword [esi], xmm1
movsd qword [esi + eax*8], xmm0
lea esi, [esi + eax*8 + 8]
cmp ebx, 0x21
jae 0x489b61
jmp 0x488077
mov ecx, esi
mov edx, ebx
call fcn.0048a0c0
jmp 0x48a0af
lea eax, [esp + 0xb4]
lea ecx, [edi - 8]
lea ebp, [edx + ebx*8 - 8]
lea esi, [esp + ebx*8 + 0xac]
mov dword [esp + 4], eax
jmp 0x489fe4
mov edi, dword [esp + 0x94]
movzx ebp, bl
movzx eax, al
movsd xmm0, qword [ecx]
mov ecx, dword [esp]
xor bl, 1
add dword [esp + 4], 8
movzx ebx, bl
lea edx, [edx + ebx*8]
lea edi, [edi + ebp*8]
lea ebp, [esi + eax*8 - 8]
mov esi, dword [esp + 0x38]
shl eax, 3
sub ecx, eax
movsd qword [esi], xmm0
add esi, 0xfffffff8
dec dword [esp + 0xb0]
mov esi, esi
je 0x48a049
mov ebx, dword [edi + 4]
mov dword [esp], ecx
xor eax, eax
mov ecx, dword [edi]
mov dword [esp + 0x38], esi
mov dword [esp + 0x94], edi
cmp ebx, dword [edx + 4]
setb al
xor ebx, ebx
cmp ecx, dword [edx]
setb bl
cmove ebx, eax
test bl, bl
jne 0x48a00f
mov edi, edx
movsd xmm0, qword [edi]
mov eax, dword [esp + 4]
mov esi, ebp
mov edi, dword [esp]
mov ebp, dword [ebp]
xor ecx, ecx
movsd qword [eax], xmm0
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
setb cl
xor eax, eax
cmp ebp, dword [edi]
setb al
cmove eax, ecx
mov ecx, edi
test al, al
jne 0x489fa0
mov ecx, esi
jmp 0x489fa0
mov ebx, dword [esp + 0x80]
add ecx, 8
mov esi, edx
mov dword [esp], ebp
test bl, 1
jne 0x48a061
mov ebp, edi
jmp 0x48a089
mov edx, ecx
xor eax, eax
xor ecx, ecx
mov ebp, edi
cmp esi, edx
cmovb edi, esi
setae al
setb cl
movsd xmm0, qword [edi]
mov edi, dword [esp + 4]
lea esi, [esi + ecx*8]
mov ecx, edx
lea ebp, [ebp + eax*8]
movsd qword [edi], xmm0
cmp esi, ecx
jne 0x48a0ba
mov edx, dword [esp]
add edx, 8
cmp ebp, edx
jne 0x48a0ba
shl ebx, 3
lea eax, [esp + 0xb4]
push ebx
push eax
push dword [esp + 0x70]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esp, 0x1b4
pop esi
pop edi
pop ebx
pop ebp
ret
ud2