Function at 0x4d9b80
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x330
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1a8], edx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4dd35f
mov eax, dword [ebp + 8]
mov edx, ecx
mov dword [esp + 0x10], ecx
shl edx, 5
mov esi, dword [eax + 4]
xor eax, eax
add edx, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x18]
add esi, 0x20
shl edi, 3
nop word cs:[eax + eax]
test edi, edi
je 0x4d9c10
mov ebx, eax
add edi, 0xfffffff8
add eax, 8
mov ecx, dword [ebx]
add ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x2c]
ja 0x4d9be0
add ecx, dword [ebx + 4]
cmp ecx, dword [esp + 0x2c]
jbe 0x4d9be0
jmp 0x4d9c1e
mov eax, dword [esp + 0xc]
inc eax
cmp esi, edx
jne 0x4d9bbf
jmp 0x4dd35f
mov eax, dword [ebp + 8]
lea ecx, [eax + 0xc]
mov edi, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
test edi, edi
je 0x4d9c64
mov eax, dword [ebp + 8]
xor edx, edx
xor ebx, ebx
mov ecx, dword [eax + 0x10]
mov eax, edi
shl eax, 7
lea esi, [eax + edi*8]
mov eax, ecx
mov ecx, dword [esp + 0xc]
nop dword [eax + eax]
cmp dword [eax + ebx], ecx
je 0x4d9e90
add ebx, 0x88
dec edx
cmp esi, ebx
jne 0x4d9c50
mov eax, dword [esp + 0x10]
cmp eax, ecx
jbe 0x4dd4a0
mov esi, dword [esp + 0x34]
mov eax, ecx
shl eax, 5
mov edx, dword [esi + eax + 4]
lea edi, [esp + 0x90]
mov ecx, edi
push dword [esi + eax + 8]
call fcn.004d94d0
add esp, 4
cmp dword [esp + 0x90], 0
je 0x4dd35f
mov ebx, dword [esp + 0x9c]
movq xmm0, qword [esp + 0x94]
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1c0], 4
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x88], ebx
movq qword [esp + 0x80], xmm0
mov dword [esp + 0x320], ebx
movq qword [esp + 0x318], xmm0
mov eax, dword [esp + 0x84]
push 0
push 0x40
push 0
push 0
push ebx
mov dword [esp + 0x24], eax
push eax
call fcn.004e0fd0
add esp, 0x18
test eax, eax
je 0x4d9df1
cmp edx, 0x40
jb 0x4d9df1
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x4d9df1
mov esi, dword [eax + 0x3c]
push 0
push 0x78
push 0
push esi
push ebx
push dword [esp + 0x24]
call fcn.004e0fd0
add esp, 0x18
test eax, eax
mov dword [esp + 0x34], eax
je 0x4d9df1
add esi, 0x78
setb al
cmp edx, 0x78
jb 0x4d9df1
mov ecx, dword [esp + 0x34]
cmp dword [ecx], 0x4550
jne 0x4d9df1
mov ecx, dword [esp + 0x34]
movzx ecx, word [ecx + 0x18]
cmp ecx, 0x10b
jne 0x4d9df1
mov ecx, dword [esp + 0x34]
movzx ecx, word [ecx + 0x14]
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov edx, dword [esp + 0x1c]
add edx, 0xffffffa0
adc ecx, 0xffffffff
cmp dword [esp + 0x1c], 0x60
mov dword [esp + 0x14], edx
mov dword [esp + 0x48], ecx
jb 0x4d9df1
xor ecx, ecx
mov cl, al
push dword [esp + 0x48]
push dword [esp + 0x18]
mov dword [esp + 0x24], ecx
push ecx
push esi
push ebx
push dword [esp + 0x24]
call fcn.004e0fd0
add esp, 0x18
test eax, eax
je 0x4d9df1
mov ecx, dword [esp + 0x34]
push dword [ecx + 0x74]
push edx
push eax
push edi
call fcn.004e1e90
add esp, 0x10
cmp dword [esp + 0x90], 0
je 0x4dd367
mov eax, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1c0]
test eax, eax
je 0x4d9e34
shl eax, 2
lea edi, [esi + 4]
lea ebx, [eax + eax*2]
jmp 0x4d9e18
add edi, 0xc
add ebx, 0xfffffff4
je 0x4d9e34
mov eax, dword [edi - 4]
test eax, eax
je 0x4d9e10
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [edi]
call fcn.00403b20
add esp, 0xc
jmp 0x4d9e10
mov eax, dword [esp + 0x1bc]
test eax, eax
je 0x4d9e51
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push esi
call fcn.00403b20
add esp, 0xc
cmp dword [esp + 0x1ac], 0
je 0x4d9e73
push dword [esp + 0x1b4]
call fcn.005334c4
push dword [esp + 0x1b0]
call fcn.005331c4
push dword [esp + 0x84]
call fcn.005334c4
push dword [esp + 0x80]
call fcn.005331c4
jmp 0x4dd35f
test edx, edx
je 0x4d9f59
lea edx, [eax + ebx]
mov dword [esp + 0xc], edx
lea ecx, [esp + 0x218]
push 0x88
push edx
push ecx
mov dword [esp + 0x6c], eax
call fcn.0053b960
add esp, 0xc
mov eax, dword [esp + 0x60]
sub esi, ebx
add esi, 0xffffff78
lea eax, [eax + ebx + 0x88]
push esi
push eax
push dword [esp + 0x14]
call fcn.0053b958
add esp, 0xc
mov ebx, dword [ebp + 8]
lea esi, [edi - 1]
mov dword [ebx + 0x14], esi
lea eax, [esp + 0x90]
push 0x88
lea ecx, [esp + 0x21c]
push ecx
push eax
call fcn.0053b960
add esp, 0xc
cmp esi, dword [ebx + 0xc]
jne 0x4d9f1a
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0049a3a0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x60], eax
mov ebx, dword [esp + 0x60]
test esi, esi
je 0x4d9f3b
mov ecx, esi
lea eax, [ebx + 0x88]
shl ecx, 7
lea ecx, [ecx + esi*8]
push ecx
push ebx
push eax
call fcn.0053b958
add esp, 0xc
push 0x88
lea eax, [esp + 0x21c]
push eax
push ebx
call fcn.0053b960
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], edi
jmp 0x4d9f5b
mov ebx, eax
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x60], ebx
sub eax, dword [esp + 0x50]
mov dword [esp + 0x2c], eax
inc eax
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0x10]
sete cl
mov dword [esp + 0x68], ecx
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x14]
test eax, eax
mov dword [esp + 0xc], eax
je 0x4da006
xor edx, edx
mov ecx, eax
mov dword [esp + 0x50], eax
jmp 0x4d9fac
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
sub ecx, edx
jbe 0x4da008
shr ecx, 1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], edx
xor ebx, ebx
add ecx, edx
mov edi, ecx
shl edi, 5
mov esi, dword [eax + edi]
mov edx, dword [eax + edi + 4]
mov edi, edx
mov eax, esi
xor edi, dword [esp + 0x68]
xor eax, dword [esp + 0x4c]
or eax, edi
mov eax, 0
setne bl
cmp dword [esp + 0x2c], esi
sbb eax, edx
mov eax, 0xff
cmovae ebx, eax
cmp bl, 1
je 0x4d9fa0
inc ecx
movzx eax, bl
mov edx, ecx
cmp eax, 0xff
jne 0x4da008
mov ecx, dword [esp + 0x50]
sub ecx, edx
ja 0x4d9fac
jmp 0x4da008
xor edx, edx
mov eax, dword [esp + 0xc]
cmp edx, eax
ja 0x4de02b
mov eax, dword [esp + 0x60]
shl edx, 5
mov dword [esp + 0x6c], 0
add edx, dword [esp + 0x34]
add eax, 8
mov dword [esp + 0x144], eax
mov dword [esp + 0x48], edx
nop word cs:[eax + eax]
nop
cmp byte [esp + 0x6c], 0
je 0x4da060
xor ebx, ebx
test ebx, ebx
mov dword [esp + 0x38], ebx
jne 0x4da0f8
jmp 0x4dcc45
mov edi, dword [esp + 0x48]
nop word cs:[eax + eax]
nop
xor ebx, ebx
cmp edi, dword [esp + 0x34]
je 0x4da0d4
mov esi, dword [esp + 0x2c]
mov edx, 0
mov ecx, edi
lea eax, [edi - 0x20]
cmp esi, dword [edi - 0x10]
sbb edx, dword [edi - 0xc]
jae 0x4da0e2
cmp esi, dword [ecx - 0x18]
mov edx, 0
lea edi, [ecx - 0x20]
sbb edx, dword [ecx - 0x14]
jae 0x4da070
mov edx, dword [esp + 0x2c]
cmp edx, dword [ecx - 0x20]
mov edx, 0
sbb edx, dword [ecx - 0x1c]
jb 0x4da070
mov esi, dword [esp + 0x60]
mov ecx, dword [eax + 0x18]
mov edx, dword [esi + 0x20]
cmp ecx, edx
jae 0x4ddb8a
imul ebx, ecx, 0x150
mov dword [esp + 0x6c], 0
add ebx, dword [esi + 0x1c]
jmp 0x4da0e8
mov eax, dword [esp + 0x34]
mov dword [esp + 0x6c], 0
jmp 0x4da0e8
mov cl, 1
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x48], eax
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x4dcc45
mov eax, dword [ebx + 0x18]
cmp eax, 2
jne 0x4db6ee
mov eax, dword [esp + 0x60]
lea edi, [ebx + 0x30]
lea esi, [ebx + 0x88]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 8
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 8
mov dword [esp + 0x128], 0
mov dword [esp + 0x150], 0
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x40]
test edx, edx
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], edx
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x2ac], edi
mov dword [esp + 0x2b0], esi
mov dword [esp + 0x1c], edx
je 0x4db567
xor edi, edi
mov esi, 8
xor ebx, ebx
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x2a0]
xor ecx, ecx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], esi
cmp byte [eax + 0x29], 8
mov edx, dword [eax + 0x20]
mov dword [esp + 0x18], edi
sete cl
add edx, edi
neg ebx
inc edi
lea edx, [edx + ecx*8]
mov ecx, dword [eax + 0x14]
add ecx, dword [eax + 0x10]
sub edx, ecx
xor ecx, ecx
add edx, 4
mov dword [esp + 0x44], edx
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [edi - 1]
cmp ecx, 0x3f
jne 0x4da212
cmp dl, 2
jae 0x4daa81
mov eax, edx
mov byte [esp + 0xc], dl
xor edx, edx
mov esi, 0
and al, 0x7f
movzx eax, al
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
mov esi, dword [esp + 0x50]
or dword [esp + 0x10], edx
movzx edx, byte [esp + 0xc]
or esi, eax
test dl, dl
mov dword [esp + 0x50], esi
jns 0x4da255
add ecx, 7
inc edi
inc ebx
jne 0x4da200
jmp 0x4daa95
not ebx
mov dword [esp + 0x2a0], edi
mov edi, esi
mov eax, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2a4], ebx
mov ebx, dword [esp + 0x10]
or eax, ebx
je 0x4da756
test ebx, ebx
mov ecx, dword [esp + 0x2b0]
mov ebx, dword [esp + 0x24]
jne 0x4da29b
lea eax, [edi - 1]
cmp eax, dword [ecx + 0x14]
jae 0x4da29b
imul eax, eax, 0x68
add eax, dword [ecx + 0x10]
jmp 0x4da35a
mov eax, dword [ecx + 4]
mov dh, 0x12
test eax, eax
je 0x4dad31
mov ecx, dword [ecx]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], eax
movzx eax, word [eax + 0x4d6]
mov ebx, 0xffffffff
xor edi, edi
mov dword [esp + 0x74], eax
imul eax, eax, 0x68
mov dword [esp + 0x30], eax
nop dword [eax + eax]
mov ecx, dword [esp + 0x30]
add ecx, edi
je 0x4da328
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x50]
xor ecx, ecx
mov edx, dword [eax + ebx*8 + 8]
mov eax, dword [eax + ebx*8 + 0xc]
mov dword [esp + 0x18], eax
xor eax, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
xor edx, esi
or edx, eax
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0xc]
setne cl
cmp esi, dword [esp + 0x1c]
sbb eax, dword [esp + 0x18]
mov eax, 0xff
cmovb ecx, eax
inc ebx
add edi, 0xffffff98
cmp cl, 1
je 0x4da2d0
movzx eax, cl
test eax, eax
jne 0x4da32c
jmp 0x4da34d
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
sub ecx, 1
jb 0x4dabd9
mov eax, dword [eax + ebx*4 + 0x4d8]
mov dword [esp + 0x3c], ecx
jmp 0x4da2ae
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
sub eax, edi
add eax, 0xfffffff0
cmp byte [eax + 0x62], 1
jne 0x4da367
inc dword [esp + 0x2a8]
cmp word [eax + 0x60], 0x2e
jne 0x4da767
add eax, 8
push eax
call fcn.004ef470
add esp, 4
test edx, edx
je 0x4da7a7
shl edx, 4
mov esi, eax
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
add edx, eax
mov dword [esp + 0xc], edx
jmp 0x4da3f0
cmp ebx, 4
jb 0x4dad36
mov eax, dword [edi]
mov edx, dword [esp + 0x50]
mov edi, 1
add eax, esi
add edx, 0x10
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc]
mov esi, edx
cmp esi, eax
je 0x4da64e
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov eax, dword [esp + 0x2ac]
movq qword [esp + 0x1d0], xmm1
movq qword [esp + 0x1c8], xmm0
mov eax, dword [eax + 0x28]
movq qword [esp + 0x220], xmm1
movq qword [esp + 0x218], xmm0
lea edx, [esp + 0x2a0]
lea ebx, [esp + 0x218]
lea ecx, [esp + 0x90]
push ebx
push eax
call fcn.0049b880
add esp, 8
mov eax, dword [esp + 0x90]
xor eax, 0x2e
or eax, dword [esp + 0x94]
je 0x4dabb4
movzx eax, word [esp + 0xa0]
mov ebx, dword [esp + 0x38]
cmp eax, 0x55
jne 0x4da505
lea ecx, [esp + 0x218]
lea edx, [esp + 0x90]
call fcn.0049d6e0
mov ecx, dword [esp + 0x218]
mov eax, dword [esp + 0x220]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x4da57d
mov edx, dword [esp + 0x40]
mov ecx, ebx
mov dword [esp + 0x50], esi
mov esi, dword [ecx + 0x144]
mov ebx, dword [edx + 0x24]
mov edi, dword [edx + 0x20]
sub ebx, esi
jb 0x4dabad
mov ecx, dword [ecx + 0x58]
movzx edx, ch
mul edx
jo 0x4dabe0
add edi, esi
sub ebx, eax
jb 0x4dabad
mov edx, ecx
add edi, eax
and edx, 0xff00
cmp edx, 0x800
jne 0x4da3c5
cmp ebx, 8
jb 0x4dad3d
cmp dword [edi + 4], 0
je 0x4da3ce
jmp 0x4dadcb
cmp eax, 0x12
je 0x4da5b5
cmp eax, 0x11
jne 0x4da633
lea ecx, [esp + 0x218]
lea edx, [esp + 0x90]
call fcn.0049d6e0
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
or eax, dword [esp + 0x21c]
mov eax, dword [esp + 0x78]
cmove eax, dword [esp + 0x224]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x64]
cmove eax, dword [esp + 0x220]
mov dword [esp + 0x64], eax
mov eax, 0
cmove ecx, eax
mov eax, 1
cmove edx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edx
jmp 0x4da633
cmp ecx, 0x16
jne 0x4da606
cmp word [ebx + 0x5a], 5
mov edx, dword [esp + 0x40]
mov ecx, 0
jae 0x4da59c
mov ecx, dword [ebx + 0x144]
cmp byte [edx + 0x74], 0
mov edx, 0
mov edi, 1
cmovne edx, ecx
add edx, eax
mov dword [esp + 0x70], edx
jmp 0x4da633
lea ecx, [esp + 0x218]
lea edx, [esp + 0x90]
call fcn.0049d6e0
mov eax, dword [esp + 0x218]
test al, 0x3f
je 0x4da60a
cmp eax, 7
jne 0x4da633
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x224]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 1
mov dword [esp + 0x118], eax
mov dword [esp + 0x180], ecx
jmp 0x4da633
xor edi, edi
jmp 0x4da633
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x224]
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 1
mov dword [esp + 0x7c], eax
mov dword [esp + 0x11c], ecx
mov edx, dword [esp + 0xc]
add esi, 0x10
cmp esi, edx
jne 0x4da3f0
cmp edi, 1
jne 0x4da942
mov ecx, dword [ebx + 0x58]
mov edi, dword [esp + 0x40]
mov eax, ecx
shr eax, 0x10
cmp ax, 5
lea ebx, [edi + 0x18]
lea edx, [edi + 0x1c]
lea esi, [edi + 0x24]
mov dword [esp + 0x50], ebx
lea ebx, [edi + 0x20]
cmovb esi, edx
cmovb ebx, dword [esp + 0x50]
mov edx, dword [esi]
mov esi, dword [esp + 0x70]
mov ebx, dword [ebx]
sub edx, esi
jb 0x4dcbf2
add ebx, esi
cmp ax, 5
mov eax, dword [edi + 0x30]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0x80]
mov edi, dword [eax + 0x13c]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], ecx
setae byte [esp + 0x9c]
mov byte [esp + 0x9f], 0
mov word [esp + 0x9d], 0
mov ebx, dword [esp + 0x50]
mov dword [esp + 0xa0], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], edi
lea ecx, [esp + 0x218]
lea edx, [esp + 0x90]
call fcn.0049e9a0
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x21c]
mov edx, eax
xor edx, 2
or edx, ecx
jne 0x4da7c7
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x220]
cmp cl, 0x4b
je 0x4da8a4
jmp 0x4dcbff
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
dec dword [esp + 0x2a8]
jmp 0x4da7af
add eax, 8
push eax
call fcn.004ef470
add esp, 4
mov edi, dword [esp + 0x2ac]
mov esi, edx
lea ecx, [esp + 0x90]
lea edx, [esp + 0x2a0]
push esi
push eax
push dword [edi + 0x28]
call fcn.0049d0c0
add esp, 0xc
movzx eax, byte [esp + 0x90]
cmp al, 0x4b
jne 0x4dae1e
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2a4]
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x4da19c
jmp 0x4dabe7
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
xor edx, edx
mov dh, dl
mov dword [esp + 0xc], edx
jmp 0x4da80f
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x218]
lea edx, [esp + 0x90]
call fcn.0049e9a0
mov eax, dword [esp + 0x218]
mov ecx, dword [esp + 0x21c]
mov edx, eax
xor edx, 2
or edx, ecx
je 0x4da741
xor eax, 1
or eax, ecx
jne 0x4da8a0
movdqu xmm1, xmmword [esp + 0x220]
mov dword [esp + 0x28], esi
pshufd xmm0, xmm1, 0x55
pshufd xmm2, xmm1, 0xff
movd ecx, xmm1
movdqa xmmword [esp + 0x50], xmm1
pshufd xmm1, xmm1, 0xee
movd esi, xmm1
movd eax, xmm0
movd edx, xmm2
cmp ecx, esi
sbb eax, edx
jae 0x4da7dd
cmp edi, dword [esp + 0x148]
mov esi, dword [esp + 0x28]
jne 0x4da87b
lea ecx, [esp + 0x148]
mov edx, edi
call fcn.00499940
mov esi, dword [esp + 0x14c]
mov edi, dword [esp + 0x150]
movdqa xmm0, xmmword [esp + 0x50]
lea eax, [edi + edi*2]
inc edi
movdqu xmmword [esi + eax*8], xmm0
mov dword [esi + eax*8 + 0x10], ebx
mov ah, 1
mov dword [esp + 0x150], edi
mov dword [esp + 0xc], eax
jmp 0x4da7e1
mov ecx, dword [esp + 0xc]
test ch, 1
je 0x4da7af
mov eax, dword [esp + 0x44]
cmp ebx, dword [esp + 0x120]
mov dword [esp + 0x90], eax
mov dword [esp + 0x98], 2
jne 0x4da8e1
lea ecx, [esp + 0x120]
mov edx, ebx
call fcn.004999f0
mov ebx, dword [esp + 0x128]
mov eax, dword [esp + 0x124]
movsd xmm0, qword [esp + 0xb0]
lea ecx, [ebx + ebx*4]
inc ebx
movsd qword [eax + ecx*8 + 0x20], xmm0
movsd xmm0, qword [esp + 0xa8]
movsd qword [eax + ecx*8 + 0x18], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd qword [eax + ecx*8 + 0x10], xmm0
movq xmm0, qword [esp + 0x90]
movq xmm1, qword [esp + 0x98]
movq qword [eax + ecx*8 + 8], xmm1
movq qword [eax + ecx*8], xmm0
mov dword [esp + 0x128], ebx
jmp 0x4da7af
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
xor eax, 1
or eax, dword [esp + 0x14]
jne 0x4da9af
mov eax, ecx
xor eax, 1
or eax, edx
jne 0x4da9af
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x64], eax
sbb ecx, dword [esp + 0x11c]
jae 0x4daa30
cmp edi, dword [esp + 0x148]
jne 0x4daa39
lea ecx, [esp + 0x148]
mov edx, edi
call fcn.00499940
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14c]
mov edi, dword [esp + 0x150]
jmp 0x4daa41
xor ecx, 1
or ecx, edx
jne 0x4daa30
mov eax, dword [esp + 0x30]
xor eax, 1
or eax, dword [esp + 0x3c]
jne 0x4daa2c
mov esi, dword [esp + 0x118]
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x180]
mov ecx, dword [esp + 0x78]
add esi, eax
adc edi, ecx
cmp eax, esi
mov ecx, ecx
sbb ecx, edi
jae 0x4daa2c
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x148]
jne 0x4daa18
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x148]
call fcn.00499940
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
jmp 0x4daa58
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
jmp 0x4da7ab
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea eax, [edi + edi*2]
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x7c]
lea eax, [ecx + eax*8]
mov ecx, edi
mov edi, dword [esp + 0x11c]
mov edx, dword [esp + 0x64]
inc ecx
mov dword [eax], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov esi, dword [esp + 0x28]
mov dword [eax + 0xc], edi
mov edi, ecx
mov dword [eax + 0x10], ebx
mov dword [esp + 0x150], ecx
jmp 0x4da8ad
not ebx
mov dword [esp + 0x2a0], edi
mov dh, 6
mov dword [esp + 0x2a4], ebx
jmp 0x4daab3
mov edi, dword [esp + 0x18]
xor esi, esi
mov dh, 0x13
add edi, dword [esp + 0x1c]
mov dword [esp + 0x2a0], edi
mov dword [esp + 0x2a4], 0
mov byte [esp + 0x80], dh
mov byte [esp + 0x81], dl
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x148]
mov dword [esp + 0x50], esi
mov dword [esp + 0x18], edi
test eax, eax
je 0x4daaf7
shl eax, 3
lea eax, [eax + eax*2]
push 8
push eax
push dword [esp + 0x154]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x128]
mov esi, dword [esp + 0x124]
test eax, eax
je 0x4dab70
shl eax, 3
lea edi, [esi + 0x20]
lea ebx, [eax + eax*4]
jmp 0x4dab28
add edi, 0x28
add ebx, 0xffffffd8
je 0x4dab70
cmp dword [edi - 0x18], 0
jne 0x4dab20
mov eax, dword [edi - 8]
test eax, eax
je 0x4dab46
shl eax, 5
push 8
push eax
push dword [edi - 0xc]
call fcn.00403b20
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x4dab20
shl eax, 3
lea eax, [eax + eax*2]
push 8
push eax
push dword [edi - 4]
call fcn.00403b20
add esp, 0xc
jmp 0x4dab20
mov eax, dword [esp + 0x120]
test eax, eax
je 0x4dab8d
shl eax, 3
lea eax, [eax + eax*4]
push 8
push eax
push esi
call fcn.00403b20
add esp, 0xc
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov ecx, 1
jmp 0x4db67f
mov al, 0x13
jmp 0x4dadec
movq xmm0, qword [esp + 0x98]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
movq qword [esp + 0x80], xmm0
jmp 0x4daacc
mov dh, 0x12
jmp 0x4daab3
mov al, 0x35
jmp 0x4dadec
mov eax, dword [esp + 0x14c]
cmp edi, 0x15
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], eax
jae 0x4dad8a
cmp edi, 2
jb 0x4db567
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
lea edi, [eax - 1]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
xor eax, eax
jmp 0x4dac55
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov dword [ebx], edi
mov edi, dword [esp + 0x10]
mov dword [ebx + 4], edx
movq xmm0, qword [esp + 0x90]
movq xmm1, qword [esp + 0x98]
movq qword [ebx + 8], xmm0
movq qword [ebx + 0x10], xmm1
add eax, 0xffffffe8
test edi, edi
je 0x4db567
mov esi, dword [esp + 0x28]
dec edi
mov dword [esp + 0xc], eax
lea ebx, [edi + edi*2]
mov eax, dword [esi + ebx*8 + 0x1c]
mov edx, dword [esi + ebx*8 + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esi + ebx*8]
mov dword [esp + 0x50], edx
cmp dword [esi + ebx*8 + 0x18], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
sbb dword [esp + 0x10], edx
jae 0x4dac4a
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], edi
sub edx, edi
cmp edx, 3
lea edx, [esi + ebx*8]
lea ebx, [esi + ebx*8 + 0x18]
movsd xmm0, qword [edx + 8]
movsd xmm1, qword [edx + 0x10]
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
movsd qword [edx], xmm0
movq qword [edx + 8], xmm1
movq xmm0, qword [ebx + 0x10]
movq qword [edx + 0x10], xmm0
jb 0x4dac1d
mov edi, dword [esp + 0x18]
mov esi, dword [edx + 0x34]
cmp dword [edx + 0x30], edi
mov edx, eax
sbb esi, dword [esp + 0x50]
jae 0x4dac21
movsd xmm0, qword [ecx + edx + 0x10]
mov ebx, edx
movsd qword [ecx + edx - 8], xmm0
movq xmm0, qword [ecx + edx]
movq xmm1, qword [ecx + edx + 8]
movq qword [ecx + edx - 0x10], xmm1
movq qword [ecx + edx - 0x18], xmm0
add edx, 0x18
je 0x4dad2a
mov esi, dword [ecx + ebx + 0x1c]
cmp dword [ecx + ebx + 0x18], edi
sbb esi, dword [esp + 0x50]
jb 0x4dacf2
add ebx, ecx
jmp 0x4dac21
jmp 0x4daab3
mov al, 0x13
jmp 0x4dadcd
mov dword [esp + 0x1cf], edi
lea esi, [esp + 0x1d0]
lea edi, [esp + 0x1b4]
movzx edx, byte [esi + 2]
movzx esi, word [esi]
mov eax, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1cc]
mov byte [edi + 2], dl
mov word [edi], si
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1ac], eax
shld ecx, eax, 8
mov al, 0x13
mov edi, dword [esp + 0x1b3]
jmp 0x4dadcd
xor ebx, ebx
cmp edi, 0xaaaaaac
setb al
jae 0x4de0d4
mov esi, edi
mov bl, al
shr esi, 1
shl ebx, 3
lea ecx, [esi*8]
lea edi, [ecx + ecx*2]
test edi, edi
js 0x4de0d4
je 0x4dae50
push ebx
push edi
call fcn.00403b10
add esp, 8
jmp 0x4dae52
mov al, 0x35
movzx edx, byte [esp + 0x1ae]
movzx esi, word [esp + 0x1ac]
mov byte [esp + 0x31a], dl
mov word [esp + 0x318], si
movzx edx, byte [esp + 0x31a]
movzx ebx, word [esp + 0x318]
lea esi, [esp + 0x81]
mov byte [esi + 2], dl
mov word [esi], bx
mov byte [esp + 0x80], al
mov dword [esp + 0x84], ecx
xor esi, esi
jmp 0x4daacc
lea edx, [esp + 0x91]
lea esi, [esp + 0x81]
mov edi, dword [esp + 0x98]
mov ecx, dword [edx]
mov edx, dword [edx + 3]
mov dword [esi + 3], edx
mov dword [esi], ecx
mov esi, dword [esp + 0x9c]
mov byte [esp + 0x80], al
jmp 0x4daacc
mov eax, ebx
test eax, eax
je 0x4de0db
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
xor esi, esi
mov ebx, 4
mov dword [esp + 0x218], 0
mov dword [esp + 0x21c], 4
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x220], 0
lea ecx, [eax - 0x48]
lea edi, [eax - 0x30]
lea edx, [eax - 0x18]
add eax, 0x18
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x78], edi
mov dword [esp + 0x70], edx
jmp 0x4daed6
mov esi, 1
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4db52a
mov ecx, eax
dec ecx
je 0x4db040
lea edi, [eax - 2]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x30], ebx
lea edx, [edi + edi*2]
mov esi, dword [eax + edx*8]
mov dword [esp + 0xc], esi
cmp dword [eax + ecx*8], esi
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + edx*8 + 4]
sbb esi, ecx
mov esi, dword [esp + 0x3c]
jae 0x4db052
mov edx, dword [esp + 0x78]
lea eax, [esi*8]
mov dword [esp + 0x14], 2
lea eax, [eax + eax*2]
lea ebx, [edx + eax]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edi
mov esi, ebx
sub edi, 1
jb 0x4daf98
lea ebx, [edi + edi*2]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x14]
mov ebx, dword [edx + ebx*8]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
mov edx, dword [edx + ebx*8 + 4]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x24]
cmp dword [esp + 0xc], ebx
lea ebx, [edx + 1]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x44]
sbb ecx, ebx
lea ecx, [esi - 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x40]
jb 0x4daf33
mov ecx, edx
mov edx, dword [esp + 0x3c]
mov edi, edx
sub edi, dword [esp + 0x10]
jb 0x4de086
cmp edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
ja 0x4de090
cmp edi, 2
jb 0x4db03a
add eax, dword [esp + 0x70]
shr ecx, 1
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x18
movsd xmm0, qword [esp + 0xa0]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x90]
movq xmm1, qword [esp + 0x98]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
add eax, 0xffffffe8
dec ecx
jne 0x4dafc3
mov eax, dword [esp + 0x10]
jmp 0x4db097
mov edi, 1
mov dword [esp + 0x10], 0
jmp 0x4db21a
mov eax, dword [esp + 0x64]
lea edx, [esi + esi*2]
add esi, 0xfffffffe
xor edi, edi
mov dword [esp + 0x10], 0
lea edx, [eax + edx*8]
cmp esi, edi
je 0x4db212
mov ebx, dword [edx]
mov eax, dword [edx + 4]
inc edi
add edx, 0xffffffe8
cmp dword [esp + 0xc], ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x30]
sbb ecx, eax
mov ecx, eax
jae 0x4db069
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
sub eax, edi
inc edi
mov esi, dword [esp + 0x1c]
test eax, eax
mov ecx, eax
mov dword [esp + 0x10], eax
je 0x4db21a
cmp edi, 9
ja 0x4db21a
cmp edx, dword [esp + 0x20]
mov edi, edx
ja 0x4de09a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
lea eax, [edx + edx*2]
lea eax, [ecx + eax*8]
mov ecx, edx
not ecx
mov dword [esp + 0x14], eax
add ecx, edi
nop word cs:[eax + eax]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
dec edx
sub edi, edx
mov eax, edx
mov dword [esp + 0x10], edx
jb 0x4ddfc3
cmp edi, 2
jb 0x4db1fa
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x28]
lea edx, [eax + edx*8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0x1c]
cmp dword [edx + 0x18], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
sbb esi, ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
jae 0x4db1fa
movsd xmm0, qword [edx + 8]
movsd xmm1, qword [edx + 0x10]
lea esi, [edx + 0x18]
cmp edi, 3
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [esi]
movq xmm1, qword [esi + 8]
movsd qword [edx], xmm0
movq qword [edx + 8], xmm1
movq xmm0, qword [esi + 0x10]
movq qword [edx + 0x10], xmm0
jb 0x4db1c9
mov eax, dword [esp + 0xc]
mov ebx, dword [edx + 0x34]
cmp dword [edx + 0x30], eax
mov edx, ecx
sbb ebx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jae 0x4db1c9
nop dword [eax + eax]
movsd xmm0, qword [ebx + 0x10]
dec edx
movsd qword [ebx - 8], xmm0
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
movq qword [ebx - 0x10], xmm1
movq qword [ebx - 0x18], xmm0
je 0x4db1c7
mov esi, dword [esp + 0xc]
mov eax, dword [ebx + 0x1c]
cmp dword [ebx + 0x18], esi
mov esi, ebx
lea ebx, [ebx + 0x18]
sbb eax, dword [esp + 0x18]
jb 0x4db190
jmp 0x4db1c9
mov esi, ebx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
mov dword [esi], eax
mov dword [esi + 4], edx
movq xmm0, qword [esp + 0x90]
movq xmm1, qword [esp + 0x98]
movq qword [esi + 8], xmm0
movq qword [esi + 0x10], xmm1
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x10], 0
je 0x4db21a
add dword [esp + 0x14], 0xffffffe8
inc ecx
cmp edi, 0xa
jb 0x4db0e0
jmp 0x4db21a
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
cmp esi, dword [esp + 0x218]
jne 0x4db23f
lea ecx, [esp + 0x218]
mov edx, esi
call fcn.004997f0
mov ebx, dword [esp + 0x21c]
mov esi, dword [esp + 0x220]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ebx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edi
inc esi
cmp esi, 2
mov dword [esp + 0x220], esi
jb 0x4daeca
nop
cmp dword [ebx + esi*8 - 8], 0
lea ecx, [esi - 1]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], ecx
je 0x4db2c0
mov edx, dword [ebx + esi*8 - 0xc]
mov eax, dword [ebx + ecx*8 + 4]
cmp edx, eax
jbe 0x4db2c0
cmp esi, 3
jb 0x4db516
lea ecx, [esi - 3]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + esi*8 - 0x14]
lea esi, [eax + edx]
cmp ecx, esi
jbe 0x4db501
mov esi, dword [esp + 0x1c]
cmp esi, 4
jb 0x4db520
add edx, ecx
cmp dword [ebx + esi*8 - 0x1c], edx
jbe 0x4db2d4
jmp 0x4daeca
cmp esi, 3
jb 0x4db2dc
mov eax, dword [ebx + ecx*8 + 4]
lea ecx, [esi - 3]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + esi*8 - 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x18]
jb 0x4db2df
lea eax, [esi - 2]
lea ecx, [eax + 1]
cmp ecx, esi
jae 0x4dd4a7
mov edx, ebx
mov edi, dword [ebx + eax*8 + 4]
mov ebx, dword [ebx + eax*8 + 8]
mov edx, dword [edx + eax*8]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x44], edi
add edx, edi
mov ebx, edx
sub ebx, dword [esp + 0xc]
mov dword [esp + 0x24], ebx
jb 0x4ddfb0
cmp edx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
ja 0x4ddf91
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov ebx, dword [ecx + eax*8 + 0xc]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*2]
mov dword [esp + 0x14], ebx
lea edi, [ecx + eax*8]
lea eax, [ebx + ebx*2]
lea esi, [edi + eax*8]
lea eax, [edx + edx*2]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp eax, ebx
jae 0x4db3f9
mov dword [esp + 0x24], eax
lea eax, [eax*8]
lea ebx, [eax + eax*2]
push ebx
push esi
push dword [esp + 0x58]
call fcn.0053b960
mov eax, dword [esp + 0x5c]
add esp, 0xc
add ebx, eax
cmp dword [esp + 0x14], 0
jle 0x4db490
cmp dword [esp + 0x24], 0
jle 0x4db490
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
lea eax, [eax + ecx*8]
nop dword [eax + eax]
mov ecx, dword [ebx - 0x18]
mov edx, dword [ebx - 0x14]
cmp ecx, dword [esi - 0x18]
sbb edx, dword [esi - 0x14]
jb 0x4db3c0
add ebx, 0xffffffe8
mov ecx, ebx
jmp 0x4db3c5
add esi, 0xffffffe8
mov ecx, esi
movsd xmm1, qword [ecx + 8]
movq xmm0, qword [ecx]
cmp esi, edi
movsd qword [eax + 8], xmm1
movq xmm1, qword [ecx + 0x10]
movq qword [eax], xmm0
movq qword [eax + 0x10], xmm1
jbe 0x4db3ee
add eax, 0xffffffe8
cmp ebx, dword [esp + 0x50]
ja 0x4db3a0
mov eax, dword [esp + 0x50]
mov edi, esi
jmp 0x4db496
lea eax, [ebx*8]
lea ebx, [eax + eax*2]
push ebx
push edi
push dword [esp + 0x58]
call fcn.0053b960
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x5c]
add esp, 0xc
add ebx, edx
test eax, eax
jle 0x4db494
cmp dword [esp + 0x24], eax
jle 0x4db494
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x74]
lea ecx, [eax + ecx*8]
mov eax, edx
nop word cs:[eax + eax]
nop dword [eax]
mov edx, eax
mov eax, dword [esi]
cmp eax, dword [edx]
mov eax, dword [esi + 4]
sbb eax, dword [edx + 4]
setae al
movzx eax, al
lea eax, [eax + eax*2]
lea eax, [edx + eax*8]
cmovb edx, esi
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
movsd qword [edi + 8], xmm1
movq xmm1, qword [edx + 0x10]
setb dl
movq qword [edi], xmm0
cmp eax, ebx
movq qword [edi + 0x10], xmm1
lea edi, [edi + 0x18]
jae 0x4db496
movzx edx, dl
lea edx, [edx + edx*2]
lea esi, [esi + edx*8]
cmp esi, ecx
jb 0x4db440
jmp 0x4db496
mov edi, esi
jmp 0x4db496
mov eax, edx
sub ebx, eax
push ebx
push eax
push edi
call fcn.0053b960
add esp, 0xc
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, esi
jae 0x4dd4ae
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x44]
sub esi, ecx
mov dword [ebx + ecx*8], eax
mov eax, dword [esp + 0x3c]
add edx, dword [esp + 0x14]
lea eax, [ebx + eax*8]
mov dword [ebx + ecx*8 + 4], edx
lea edx, [esi*8 - 0x10]
lea ecx, [eax + 8]
push edx
push ecx
push eax
call fcn.0053b958
add esp, 0xc
mov esi, dword [esp + 0x40]
cmp esi, 1
mov dword [esp + 0x220], esi
ja 0x4db260
jmp 0x4daec5
mov esi, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x18]
jae 0x4db2dc
jmp 0x4db2df
mov esi, 2
jmp 0x4daeca
mov esi, 3
jmp 0x4daeca
mov eax, dword [esp + 0x218]
test eax, eax
je 0x4db544
shl eax, 3
push 4
push eax
push ebx
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x4db567
shl eax, 3
lea eax, [eax + eax*2]
push 8
push eax
push dword [esp + 0x1d4]
call fcn.00403b20
add esp, 0xc
movq xmm0, qword [esp + 0x120]
mov ebx, dword [esp + 0x128]
movq qword [esp + 0x90], xmm0
mov dword [esp + 0x98], ebx
mov ecx, dword [esp + 0x90]
cmp ecx, ebx
jbe 0x4db5c5
mov eax, dword [esp + 0x94]
shl ecx, 3
test ebx, ebx
lea ecx, [ecx + ecx*4]
je 0x4db5ce
lea edx, [ebx*8]
lea edi, [edx + edx*4]
push edi
push 8
push ecx
push eax
call fcn.00403b40
add esp, 0x10
mov esi, eax
test eax, eax
jne 0x4db5df
jmp 0x4de03c
mov esi, dword [esp + 0x94]
jmp 0x4db5df
push 8
push ecx
push eax
call fcn.00403b20
add esp, 0xc
mov esi, 8
movq xmm0, qword [esp + 0x148]
mov edx, dword [esp + 0x150]
mov dword [esp + 0x218], esi
mov dword [esp + 0x21c], ebx
movq qword [esp + 0x90], xmm0
mov dword [esp + 0x98], edx
mov ecx, dword [esp + 0x90]
cmp ecx, edx
jbe 0x4db64f
mov eax, dword [esp + 0x94]
shl ecx, 3
test edx, edx
lea ecx, [ecx + ecx*2]
je 0x4db65a
mov edi, edx
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov dword [esp + 0x50], edx
push edx
push 8
push ecx
push eax
call fcn.00403b40
add esp, 0x10
test eax, eax
jne 0x4db66d
jmp 0x4de04c
mov eax, dword [esp + 0x94]
mov edi, edx
jmp 0x4db66d
mov edi, edx
push 8
push ecx
push eax
call fcn.00403b20
add esp, 0xc
mov eax, 8
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], eax
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edx
lea esi, [ebx + 0x18]
cmp dword [esi], 2
jne 0x4db6e0
movsd xmm0, qword [esp + 0x90]
movq xmm1, qword [esp + 0x98]
movsd qword [esi], xmm0
movq xmm0, qword [esp + 0xa0]
movq qword [esi + 8], xmm1
movq qword [esi + 0x10], xmm0
jmp 0x4db6ec
lea ecx, [esp + 0x90]
call fcn.004908b0
mov eax, dword [esi]
test eax, eax
je 0x4db7a0
cmp byte [ebx + 0x20], 0x4b
mov ecx, dword [esp + 0x60]
jne 0x4dd30b
mov eax, dword [ebx + 0x24]
mov edi, dword [eax + 0xc]
test edi, edi
je 0x4db7b2
mov esi, dword [eax + 8]
xor ecx, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], edi
jmp 0x4db738
mov dword [esp + 0x50], edi
sub edi, ecx
jbe 0x4db787
mov edx, dword [esp + 0x2c]
shr edi, 1
mov eax, 0
add edi, ecx
lea ebx, [edi + edi*2]
cmp edx, dword [esi + ebx*8 + 8]
sbb eax, dword [esi + ebx*8 + 0xc]
mov eax, 0
adc al, 0xff
cmp edx, dword [esi + ebx*8]
mov edx, 0
movzx eax, al
sbb edx, dword [esi + ebx*8 + 4]
mov edx, 1
cmovb eax, edx
cmp al, 1
je 0x4db730
movzx eax, al
cmp eax, 0xff
jne 0x4db7c0
inc edi
mov ecx, edi
mov edi, dword [esp + 0x50]
sub edi, ecx
ja 0x4db738
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x24], 0
jmp 0x4db9c0
mov ecx, dword [esp + 0x60]
lea eax, [ebx + 0x1c]
mov edi, dword [eax + 0xc]
test edi, edi
jne 0x4db712
mov dword [esp + 0x24], 0
jmp 0x4db9c0
mov edx, dword [esp + 0xc]
mov ecx, dword [esi + ebx*8 + 0x10]
mov eax, dword [edx + 4]
cmp ecx, eax
jae 0x4dd4c3
mov eax, dword [edx]
lea edx, [ecx + ecx*4]
mov ebx, dword [esp + 0x38]
mov ecx, dword [eax + edx*8 + 8]
lea esi, [eax + edx*8 + 8]
mov dword [esp + 0x24], esi
cmp ecx, 2
jne 0x4db996
mov edi, dword [eax + edx*8]
mov edx, dword [ebx + 0x50]
xor ecx, ecx
cmp byte [ebx + 0x59], 8
mov eax, dword [ebx + 0x44]
sete cl
mov dword [esp + 0x50], edx
sub edx, eax
mov dword [esp + 0x78], edi
lea esi, [edx + ecx*8 + 4]
mov edx, edi
lea edi, [ebx + 0x30]
mov dword [esp + 0x1c], edi
sub edx, esi
lea edi, [ebx + 0x88]
jb 0x4db91f
cmp eax, edx
jbe 0x4db91f
mov dword [esp + 0x14], edi
mov edi, dword [ebx + 0x40]
mov esi, eax
mov dword [esp + 0x30], eax
sub esi, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], edi
lea edi, [edi + edx]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x218], edi
mov dword [esp + 0x21c], esi
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], edx
mov dword [esp + 0x228], eax
mov dword [esp + 0xc], edx
je 0x4db909
mov esi, dword [esp + 0x78]
lea ecx, [ecx*8 + 4]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
sub esi, ecx
lea edi, [edx + eax]
xor eax, eax
xor ecx, ecx
sub esi, dword [esp + 0x50]
nop
mov dword [esp + 0x50], eax
movzx eax, byte [edi + esi]
cmp ecx, 0x3f
jne 0x4db8c5
cmp al, 2
jae 0x4dbc14
mov ebx, eax
mov edx, edi
mov dword [esp + 0xc], eax
mov eax, 0
and bl, 0x7f
movzx edi, bl
xor ebx, ebx
shld ebx, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebx, edi
cmovne edi, eax
mov eax, dword [esp + 0x50]
or dword [esp + 0x10], edi
or eax, ebx
cmp byte [esp + 0xc], 0
jns 0x4dbc25
mov ebx, dword [esp + 0x38]
add ecx, 7
inc esi
mov edi, edx
jne 0x4db8b0
mov al, 0x13
mov dword [esp + 0x50], edi
mov dword [esp + 0x18], 0
xor edi, edi
mov dword [esp + 0x20], eax
jmp 0x4db93d
mov ecx, dword [esp + 0x1c]
mov al, 0x38
mov dword [esp + 0x18], edi
xor esi, esi
mov dword [esp + 0xc], 0
xor edi, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, 1
cmp ecx, 2
jne 0x4db996
movzx ecx, byte [esp + 0xc]
movzx edx, byte [esp + 0x20]
shl esi, 0x10
shl ecx, 8
or ecx, esi
or edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, edi
mov edi, ecx
mov ecx, dword [esp + 0x7c]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
mov edx, dword [esp + 0x18]
mov dword [edi + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x14], edx
mov dword [edi + 0x18], ecx
mov ecx, dword [esp + 0x78]
mov dword [edi + 0x1c], ecx
mov ecx, dword [edi]
test ecx, ecx
je 0x4db9b5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
cmp byte [eax + 8], 0x4b
jne 0x4dd30b
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], eax
jmp 0x4db9c0
add dword [esp + 0x24], 4
mov ecx, dword [esp + 0x60]
nop
mov eax, dword [ecx + 0x24]
add eax, 8
lea ecx, [esp + 0x90]
mov edx, ebx
push eax
call fcn.004a0710
add esp, 4
cmp byte [esp + 0x90], 0x4b
jne 0x4dcc4f
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4dba90
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 8]
xor edx, edx
mov edi, 0
mov dword [esp + 0x30], eax
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x4dbaa4
xor edx, edx
mov edi, ecx
mov dword [esp + 0x50], ecx
jmp 0x4dba28
mov dword [esp + 0x50], edi
sub edi, edx
jbe 0x4dba78
mov ecx, dword [esp + 0x2c]
shr edi, 1
mov eax, 0
add edi, edx
lea ebx, [edi + edi*2]
cmp ecx, dword [esi + ebx*8 + 8]
sbb eax, dword [esi + ebx*8 + 0xc]
mov eax, 0
adc al, 0xff
cmp ecx, dword [esi + ebx*8]
mov ecx, 0
sbb ecx, dword [esi + ebx*8 + 4]
movzx ebx, al
mov eax, 1
cmovb ebx, eax
cmp bl, 1
je 0x4dba20
movzx eax, bl
cmp eax, 0xff
jne 0x4dba9a
inc edi
mov edx, edi
mov edi, dword [esp + 0x50]
sub edi, edx
ja 0x4dba28
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x38]
test edx, edx
cmovne edx, ecx
mov edi, edx
jmp 0x4dbaa2
mov esi, 2
jmp 0x4dbbfa
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp edi, ecx
jae 0x4dbb60
lea eax, [edi + edi*2]
mov edx, dword [esi + eax*8 + 0x14]
test edx, edx
je 0x4dbb4f
mov eax, dword [esi + eax*8 + 0x10]
xor ebx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
jmp 0x4dbaea
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov edx, eax
sub edx, ebx
jbe 0x4dbb44
mov esi, dword [esp + 0x1c]
shr edx, 1
mov dword [esp + 0xc], ebx
add edx, ebx
lea ecx, [edx + edx*2]
mov dword [esp + 0x50], edx
xor edx, edx
mov eax, dword [esi + ecx*8]
mov ecx, dword [esi + ecx*8 + 4]
mov esi, dword [esp + 0x2c]
mov ebx, eax
xor ebx, esi
or ebx, ecx
setne dl
cmp eax, esi
mov eax, 0xff
sbb ecx, 0
cmovb edx, eax
cmp dl, 1
je 0x4dbad0
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x18]
movzx eax, dl
cmp eax, 0xff
jne 0x4dbb53
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc ebx
sub edx, ebx
ja 0x4dbaea
sub ebx, 1
mov edx, ebx
mov ebx, dword [esp + 0x38]
jae 0x4dbb60
xor edx, edx
jmp 0x4dbb60
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov edx, ebx
mov ebx, eax
nop
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x220], esi
mov dword [esp + 0x224], ecx
mov dword [esp + 0x228], edi
mov dword [esp + 0x22c], edx
mov dword [esp + 0x230], eax
lea eax, [esp + 0x218]
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004ecf40
add esp, 8
cmp dword [esp + 0xa8], 2
mov esi, 2
je 0x4dbbfa
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4dcc58
cmp esi, 2
je 0x4da040
jmp 0x4dcdbf
mov al, 6
xor edi, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], eax
jmp 0x4db93d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x38]
add ecx, dword [esp + 0x30]
or edx, eax
lea ecx, [esi + ecx + 1]
not esi
mov dword [esp + 0x218], ecx
mov dword [esp + 0x21c], esi
je 0x4de05f
mov dword [esp + 0x50], eax
test eax, eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
jne 0x4dbc7c
mov ecx, dword [esp + 0x10]
dec ecx
cmp ecx, dword [ebx + 0x9c]
jae 0x4dbc7c
imul eax, ecx, 0x68
add eax, dword [ebx + 0x98]
jmp 0x4dbd4d
mov esi, dword [ebx + 0x8c]
mov cl, 0x12
mov dword [esp + 0x20], ecx
test esi, esi
je 0x4dbf8b
mov ecx, dword [edx]
mov dword [esp + 0x28], ecx
movzx ecx, word [esi + 0x4d6]
mov edi, 0xffffffff
xor ebx, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], ecx
imul ecx, ecx, 0x68
mov dword [esp + 0x30], ecx
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [esp + 0x30]
add ecx, ebx
je 0x4dbd1b
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov esi, dword [eax + edi*8 + 8]
mov eax, dword [eax + edi*8 + 0xc]
mov dword [esp + 0xc], eax
xor eax, dword [esp + 0x50]
mov dword [esp + 0x18], esi
xor esi, edx
or esi, eax
mov eax, dword [esp + 0x50]
setne cl
cmp edx, dword [esp + 0x18]
sbb eax, dword [esp + 0xc]
mov eax, 0xff
cmovb ecx, eax
mov eax, dword [esp + 0x24]
inc edi
add ebx, 0xffffff98
cmp cl, 1
je 0x4dbcc0
movzx eax, cl
test eax, eax
je 0x4dbd40
mov eax, dword [esp + 0x24]
jmp 0x4dbd1f
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
sub ecx, 1
jb 0x4dcba5
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov esi, dword [esi + edi*4 + 0x4d8]
jmp 0x4dbc96
mov eax, dword [esp + 0x14]
sub eax, ebx
mov ebx, dword [esp + 0x38]
add eax, 0xfffffff0
cmp byte [eax + 0x62], 1
jne 0x4dbd5e
mov dword [esp + 0x220], 1
add eax, 8
push eax
call fcn.004ef470
add esp, 4
test edx, edx
je 0x4dbf96
shl edx, 4
mov ecx, eax
xor edi, edi
mov dword [esp + 0xc], edx
jmp 0x4dbda7
cmp eax, 3
je 0x4dbeb1
cmp eax, 0x31
jne 0x4dbd95
test edi, edi
je 0x4dbf19
mov ecx, dword [esp + 0x50]
add ecx, 0x10
add dword [esp + 0xc], 0xfffffff0
je 0x4dbf98
movq xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
mov eax, dword [esp + 0x224]
mov dword [esp + 0x50], ecx
movq qword [esp + 0x1d0], xmm1
movq qword [esp + 0x1c8], xmm0
mov eax, dword [eax + 0x28]
movq qword [esp + 0x2a8], xmm1
movq qword [esp + 0x2a0], xmm0
lea esi, [esp + 0x2a0]
lea ecx, [esp + 0x90]
lea edx, [esp + 0x218]
push esi
push eax
call fcn.0049b880
add esp, 8
mov eax, dword [esp + 0x90]
xor eax, 0x2e
or eax, dword [esp + 0x94]
je 0x4dc209
movzx eax, word [esp + 0xa0]
cmp eax, 0x46
jle 0x4dbd7f
cmp eax, 0x47
je 0x4dbd8d
cmp eax, 0x6e
je 0x4dbe42
cmp eax, 0x2007
jne 0x4dbd95
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 0x24]
mov dword [esp + 0x7c], edi
lea edi, [esp + 0x2a0]
lea edx, [esp + 0x90]
mov ecx, edi
call fcn.0049d6e0
movzx eax, byte [ebx + 0x59]
add esi, 8
lea ecx, [esp + 0x1c8]
mov edx, esi
push edi
mov edi, dword [esp + 0x80]
push dword [ebx + 0x138]
push eax
call fcn.0049e2a0
add esp, 0xc
cmp byte [esp + 0x1c8], 0x4b
jne 0x4dbd95
mov eax, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1cc]
mov dword [esp + 0x118], eax
jmp 0x4dbd95
test edi, edi
jne 0x4dbd95
mov eax, dword [esp + 0x60]
mov esi, dword [eax + 0x24]
lea edi, [esp + 0x2a0]
lea edx, [esp + 0x90]
mov ecx, edi
call fcn.0049d6e0
movzx eax, byte [ebx + 0x59]
add esi, 8
lea ecx, [esp + 0x1c8]
mov edx, esi
push edi
push dword [ebx + 0x138]
push eax
call fcn.0049e2a0
add esp, 0xc
xor edi, edi
cmp byte [esp + 0x1c8], 0x4b
mov eax, dword [esp + 0x10]
jne 0x4dbf13
mov edi, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x10], eax
jmp 0x4dbf7f
lea ecx, [esp + 0x2a0]
lea edx, [esp + 0x90]
call fcn.0049d6e0
mov edx, dword [esp + 0x2a0]
lea ecx, [esp + 0x1c8]
push 0x10
push dword [esp + 0x148]
push dword [esp + 0x24]
push dword [esp + 0x2b4]
push dword [esp + 0x2b4]
call fcn.004aaab0
add esp, 0x14
movzx eax, byte [esp + 0x1c8]
cmp al, 0x4b
mov dword [esp + 0x20], eax
jne 0x4dcbbc
mov edi, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x118], eax
jmp 0x4dbd95
mov dword [esp + 0xc], ecx
xor edi, edi
jmp 0x4db941
xor edi, edi
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 8
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 8
mov dword [esp + 0x128], 0
mov dword [esp + 0x150], 0
lea edx, [esp + 0x218]
lea ecx, [esp + 0x90]
push 0
lea eax, [esp + 0x14c]
push eax
lea eax, [esp + 0x128]
push eax
push dword [esp + 0x150]
push dword [esp + 0x2c]
push 0
call fcn.004a9be0
add esp, 0x18
movzx eax, byte [esp + 0x90]
cmp al, 0x4b
mov dword [esp + 0x20], eax
jne 0x4dc17c
mov esi, dword [esp + 0x150]
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x7c], edi
cmp esi, 0x15
mov dword [esp + 0x64], esi
mov dword [esp + 0x40], ebx
jae 0x4dc241
cmp esi, 2
jb 0x4dca24
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], 0
lea edx, [eax - 1]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8 - 0x18]
jmp 0x4dc0a5
add edx, ecx
mov eax, edx
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x14]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x30]
mov dword [eax], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + 0x14], esi
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x40]
add dword [esp + 0x18], 0xffffffe8
test edx, edx
je 0x4dca24
dec edx
mov dword [esp + 0x10], edx
lea edx, [edx + edx*2]
mov edi, dword [ebx + edx*8 + 0x28]
mov esi, dword [ebx + edx*8 + 0x10]
lea eax, [ebx + edx*8 + 0x18]
cmp edi, esi
mov edi, dword [ebx + edx*8]
mov ebx, dword [ebx + edx*8 + 4]
mov dword [esp + 0x50], edi
mov dword [esp + 0xc], ebx
jb 0x4dc0dd
ja 0x4dc090
mov edi, dword [esp + 0x50]
mov ebx, dword [eax + 4]
cmp dword [eax], edi
sbb ebx, dword [esp + 0xc]
jae 0x4dc090
mov edi, dword [esp + 0x40]
movsd xmm0, qword [eax]
movq xmm1, qword [eax + 8]
lea edx, [edi + edx*8]
mov edi, dword [edx + 8]
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x14], edi
mov edi, dword [edx + 0xc]
movsd qword [edx], xmm0
movq qword [edx + 8], xmm1
mov dword [esp + 0x1c], ebx
movq xmm0, qword [eax + 0x10]
mov dword [esp + 0x30], edi
movq qword [edx + 0x10], xmm0
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x10]
cmp edx, 3
mov edx, dword [esp + 0x18]
jae 0x4dc158
jmp 0x4dc06b
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + edx + 0x10], xmm0
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [ecx + edx + 8], xmm1
movq qword [ecx + edx], xmm0
add edx, 0x18
je 0x4dc067
cmp dword [ecx + edx + 0x28], esi
lea eax, [ecx + edx + 0x18]
jb 0x4dc130
ja 0x4dc067
mov ebx, dword [esp + 0x50]
mov edi, dword [eax + 4]
cmp dword [eax], ebx
sbb edi, dword [esp + 0xc]
jb 0x4dc130
jmp 0x4dc067
movzx eax, byte [esp + 0x91]
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
movzx esi, word [esp + 0x92]
mov edx, dword [esp + 0x98]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x148]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edi
test eax, eax
je 0x4dc1d8
shl eax, 3
lea eax, [eax + eax*2]
push 8
push eax
push dword [esp + 0x154]
mov edi, edx
call fcn.00403b20
mov edx, edi
mov edi, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x120]
mov dword [esp + 0x50], edx
test eax, eax
je 0x4db93d
shl eax, 5
push 8
push eax
push dword [esp + 0x12c]
call fcn.00403b20
mov edi, dword [esp + 0x28]
add esp, 0xc
jmp 0x4db93d
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xa4]
mov esi, ecx
mov dword [esp + 0x20], ecx
shr esi, 0x10
mov dword [esp + 0x18], eax
mov al, ch
mov dword [esp + 0xc], eax
jmp 0x4db93d
xor ebx, ebx
cmp esi, 0xaaaaaac
setb al
jae 0x4de0e7
shr esi, 1
mov bl, al
lea ecx, [esi*8]
shl ebx, 3
lea edi, [ecx + ecx*2]
test edi, edi
js 0x4de0e7
je 0x4dc279
push ebx
push edi
call fcn.00403b10
add esp, 8
jmp 0x4dc27b
mov eax, ebx
test eax, eax
je 0x4de0ee
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c8], esi
xor ebx, ebx
mov edi, 4
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x2a0], 0
mov dword [esp + 0x2a4], 4
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x2a8], 0
mov dword [esp + 0x50], eax
lea edx, [ecx - 0x38]
lea esi, [ecx - 0x30]
add ecx, 0xffffffe8
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x180], esi
mov dword [esp + 0x328], edx
mov esi, eax
jmp 0x4dc303
mov ebx, 2
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4dc9e7
mov eax, ecx
mov dword [esp + 0x28], edi
dec eax
je 0x4dc5e4
mov edx, ecx
lea edx, [ecx - 2]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*2]
mov dword [esp + 0x20], ebx
lea esi, [edx + edx*2]
mov ebx, eax
mov edi, dword [ecx + eax*8 + 0x10]
mov eax, dword [ecx + esi*8 + 0x10]
cmp edi, eax
jb 0x4dc35b
lea esi, [ecx + esi*8]
mov edi, dword [esi]
mov dword [esp + 0xc], edi
mov edi, dword [esi + 4]
ja 0x4dc5f3
lea ecx, [ecx + ebx*8]
mov ebx, dword [esp + 0xc]
mov esi, dword [ecx + 4]
cmp dword [ecx], ebx
sbb esi, edi
jae 0x4dc5f3
xor ebx, ebx
test edx, edx
je 0x4dc396
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x180]
lea ecx, [ecx + ecx*2]
lea ecx, [esi + ecx*8]
jmp 0x4dc37c
dec edx
add ecx, 0xffffffe8
test edx, edx
je 0x4dc396
mov esi, eax
mov eax, dword [ecx - 8]
cmp esi, eax
jb 0x4dc374
ja 0x4dc394
mov esi, dword [ecx - 0x18]
mov edi, dword [ecx + 4]
cmp dword [ecx], esi
sbb edi, dword [ecx - 0x14]
jb 0x4dc374
mov ebx, edx
mov edx, dword [esp + 0x44]
mov eax, ebx
mov dword [esp + 0x14], ebx
mov edi, edx
sub edi, ebx
mov ebx, dword [esp + 0x20]
jb 0x4de075
cmp edx, dword [esp + 0x64]
ja 0x4de07c
cmp edi, 2
jb 0x4dc461
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x11c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov ecx, edx
mov edx, edi
lea ecx, [ecx + ecx*2]
shr edx, 1
lea esi, [esi + ecx*8]
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
add eax, 0x18
movsd xmm0, qword [esp + 0xa0]
movsd qword [esi + 0x10], xmm0
movq xmm0, qword [esp + 0x90]
movq xmm1, qword [esp + 0x98]
movq qword [esi + 8], xmm1
movq qword [esi], xmm0
add esi, 0xffffffe8
dec edx
jne 0x4dc3e2
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
cmp dword [esp + 0x14], 0
je 0x4dc66b
cmp edi, 9
ja 0x4dc66b
cmp edx, dword [esp + 0x64]
mov esi, edx
ja 0x4de0b7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
lea eax, [edx + edx*2]
not edx
lea eax, [ecx + eax*8]
add edx, esi
mov dword [esp + 0x1c], eax
mov eax, esi
mov dword [esp + 0x30], edx
nop dword [eax]
mov ecx, dword [esp + 0x14]
mov edi, eax
dec ecx
sub edi, ecx
mov dword [esp + 0x14], ecx
jb 0x4de010
cmp edi, 2
jb 0x4dc5bd
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x40]
lea edx, [ecx + eax*8]
mov ecx, dword [esp + 0x14]
mov ebx, dword [edx + 0x28]
mov esi, dword [edx + 0x10]
lea eax, [edx + 0x18]
cmp ebx, esi
mov ebx, dword [edx]
mov dword [esp + 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [esp + 0x10], ebx
jb 0x4dc501
ja 0x4dc5bd
mov ecx, dword [esp + 0xc]
mov ebx, dword [eax + 4]
cmp dword [eax], ecx
mov ecx, dword [esp + 0x14]
sbb ebx, dword [esp + 0x10]
jae 0x4dc5bd
mov ecx, dword [edx + 8]
movsd xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov ebx, dword [edx + 0x14]
cmp edi, 3
mov dword [esp + 0x18], esi
mov dword [esp + 0x74], ecx
mov ecx, dword [edx + 0xc]
movsd qword [edx], xmm0
movq qword [edx + 8], xmm1
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x1c]
movq xmm0, qword [eax + 0x10]
mov dword [esp + 0x70], ecx
movq qword [edx + 0x10], xmm0
mov edx, dword [esp + 0x30]
jae 0x4dc571
jmp 0x4dc594
movsd xmm0, qword [eax + 0x10]
dec edx
movsd qword [ebx + 0x10], xmm0
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [ebx + 8], xmm1
movq qword [ebx], xmm0
mov ebx, eax
je 0x4dc594
cmp dword [ebx + 0x28], esi
lea eax, [ebx + 0x18]
jb 0x4dc550
ja 0x4dc592
mov esi, edi
mov edi, dword [esp + 0xc]
mov ecx, dword [eax + 4]
cmp dword [eax], edi
mov edi, esi
mov esi, dword [esp + 0x18]
sbb ecx, dword [esp + 0x10]
jb 0x4dc550
mov eax, ebx
mov ecx, dword [esp + 0xc]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x4dc667
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
add dword [esp + 0x1c], 0xffffffe8
inc dword [esp + 0x30]
cmp edi, 0xa
jb 0x4dc4a0
jmp 0x4dc66b
mov edi, 1
mov dword [esp + 0x14], 0
jmp 0x4dc66b
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x328]
mov ebx, edi
mov dword [esp + 0x10], 2
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*8]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
sub ecx, edi
mov dword [esp + 0x14], ecx
je 0x4dc9d0
mov ecx, dword [edx]
mov dword [esp + 0x1c], ebx
cmp eax, ecx
jb 0x4dc459
mov ebx, dword [edx - 0x10]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], ebx
mov ebx, dword [edx - 0xc]
lea edx, [edi + 1]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
add edx, 0xffffffe8
cmp eax, ecx
mov eax, ecx
ja 0x4dc60e
cmp esi, dword [esp + 0xc]
mov eax, ecx
sbb dword [esp + 0x1c], ebx
jae 0x4dc60e
jmp 0x4dc459
mov ebx, dword [esp + 0x20]
cmp ebx, dword [esp + 0x2a0]
jne 0x4dc692
lea ecx, [esp + 0x2a0]
mov edx, ebx
call fcn.004997f0
mov eax, dword [esp + 0x2a4]
mov ebx, dword [esp + 0x2a8]
jmp 0x4dc696
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov dword [eax + ebx*8], ecx
mov dword [eax + ebx*8 + 4], edi
inc ebx
mov edi, eax
cmp ebx, 2
mov dword [esp + 0x2a8], ebx
jb 0x4dc2f7
nop dword [eax + eax]
cmp dword [edi + ebx*8 - 8], 0
lea ecx, [ebx - 1]
mov dword [esp + 0x44], ecx
je 0x4dc70b
mov edx, dword [edi + ebx*8 - 0xc]
mov eax, dword [edi + ecx*8 + 4]
cmp edx, eax
jbe 0x4dc70b
cmp ebx, 3
jb 0x4dc2f2
lea ecx, [ebx - 3]
lea esi, [eax + edx]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + ebx*8 - 0x14]
cmp ecx, esi
jbe 0x4dc71f
cmp ebx, 4
jb 0x4dc9dd
add edx, ecx
cmp dword [edi + ebx*8 - 0x1c], edx
jbe 0x4dc71f
jmp 0x4dc2f7
cmp ebx, 3
jb 0x4dc727
mov eax, dword [edi + ecx*8 + 4]
lea ecx, [ebx - 3]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + ebx*8 - 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x30]
jb 0x4dc72a
lea eax, [ebx - 2]
lea ecx, [eax + 1]
cmp ecx, ebx
jae 0x4dd4d4
mov edx, edi
mov edi, dword [edi + eax*8 + 4]
mov esi, dword [edx + eax*8 + 8]
mov edx, dword [edx + eax*8]
mov dword [esp + 0x3c], edi
add edx, edi
mov dword [esp + 0x1c], esi
mov esi, edx
sub esi, dword [esp + 0x1c]
mov dword [esp + 0x10], esi
jb 0x4ddffd
cmp edx, dword [esp + 0x64]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x74], ecx
ja 0x4ddfde
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], eax
mov ebx, dword [ecx + eax*8 + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*2]
mov dword [esp + 0x70], ebx
lea ecx, [ecx + eax*8]
lea eax, [ebx + ebx*2]
lea edi, [ecx + eax*8]
lea eax, [edx + edx*2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
sub eax, ebx
cmp eax, ebx
jae 0x4dc87d
mov dword [esp + 0x10], eax
lea eax, [eax*8]
mov dword [esp + 0xc], ecx
lea esi, [eax + eax*2]
push esi
push edi
push dword [esp + 0x58]
call fcn.0053b960
add esp, 0xc
mov ecx, esi
mov esi, dword [esp + 0x50]
add ecx, esi
test ebx, ebx
jle 0x4dc94a
cmp dword [esp + 0x10], 0
jle 0x4dc94a
mov eax, dword [esp + 0x11c]
mov edx, dword [esp + 0x18]
lea eax, [eax + edx*8]
nop word cs:[eax + eax]
nop
mov ebx, dword [ecx - 8]
mov esi, dword [edi - 8]
lea edx, [edi - 0x18]
cmp ebx, esi
jb 0x4dc833
mov dword [esp + 0x18], edi
lea edi, [ecx - 0x18]
cmp ebx, esi
mov dword [esp + 0x10], edi
ja 0x4dc871
mov esi, dword [edx]
mov ebx, dword [ecx - 0x14]
mov edi, dword [esp + 0x18]
cmp dword [ecx - 0x18], esi
sbb ebx, dword [edx + 4]
mov ebx, dword [esp + 0x10]
mov esi, ebx
jae 0x4dc839
mov esi, ecx
mov edi, edx
mov ebx, edx
movsd xmm0, qword [ebx + 0x10]
cmp edi, dword [esp + 0xc]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
jbe 0x4dc94e
mov edx, dword [esp + 0x50]
add eax, 0xffffffe8
mov ecx, esi
cmp esi, edx
ja 0x4dc800
jmp 0x4dc956
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov esi, ebx
jmp 0x4dc839
lea eax, [ebx*8]
lea eax, [eax + eax*2]
mov dword [esp + 0xc], eax
push eax
mov eax, esi
mov esi, ecx
push ecx
push eax
call fcn.0053b960
add esp, 0xc
mov eax, dword [esp + 0x50]
add dword [esp + 0xc], eax
test ebx, ebx
jle 0x4dc93e
cmp dword [esp + 0x10], ebx
jle 0x4dc93e
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
lea eax, [eax + ecx*8]
mov dword [esp + 0x10], eax
nop word [eax + eax]
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 0x10]
cmp eax, ecx
jb 0x4dc8e8
ja 0x4dc900
mov eax, dword [edx]
mov ecx, dword [edi + 4]
cmp dword [edi], eax
sbb ecx, dword [edx + 4]
jae 0x4dc900
mov eax, edx
lea ecx, [edi + 0x18]
mov edx, edi
jmp 0x4dc905
lea eax, [edx + 0x18]
mov ecx, edi
movsd xmm0, qword [edx + 0x10]
cmp eax, dword [esp + 0xc]
lea ebx, [esi + 0x18]
movsd qword [esi + 0x10], xmm0
movq xmm0, qword [edx]
movq xmm1, qword [edx + 8]
movq qword [esi + 8], xmm1
movq qword [esi], xmm0
jae 0x4dc936
cmp ecx, dword [esp + 0x10]
mov esi, ebx
mov edx, eax
mov edi, ecx
jb 0x4dc8d0
mov ecx, dword [esp + 0xc]
mov edi, ebx
jmp 0x4dc960
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
mov edi, esi
jmp 0x4dc960
mov eax, esi
jmp 0x4dc960
mov eax, dword [esp + 0x50]
mov ecx, esi
jmp 0x4dc960
mov ecx, esi
mov eax, edx
nop word [eax + eax]
sub ecx, eax
push ecx
push eax
push edi
call fcn.0053b960
add esp, 0xc
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
cmp ecx, ebx
jae 0x4dd4db
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
sub ebx, ecx
mov dword [edi + ecx*8], eax
mov eax, dword [esp + 0x74]
add edx, dword [esp + 0x70]
lea eax, [edi + eax*8]
mov dword [edi + ecx*8 + 4], edx
lea edx, [ebx*8 - 0x10]
lea ecx, [eax + 8]
push edx
push ecx
push eax
call fcn.0053b958
add esp, 0xc
mov ebx, dword [esp + 0x44]
cmp ebx, 1
mov dword [esp + 0x2a8], ebx
ja 0x4dc6c0
mov ebx, 1
jmp 0x4dc2f7
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x20]
jmp 0x4dc5e9
mov ebx, 3
jmp 0x4dc2f7
mov eax, dword [esp + 0x2a0]
test eax, eax
je 0x4dca01
shl eax, 3
push 4
push eax
push edi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x1c8]
test eax, eax
je 0x4dca24
shl eax, 3
lea eax, [eax + eax*2]
push 8
push eax
push dword [esp + 0x1d4]
call fcn.00403b20
add esp, 0xc
movq xmm0, qword [esp + 0x120]
mov edx, dword [esp + 0x128]
movq qword [esp + 0x90], xmm0
mov dword [esp + 0x98], edx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x90]
cmp eax, edx
jbe 0x4dca80
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x38]
shl eax, 5
test edx, edx
je 0x4dca8d
mov edi, edx
shl edi, 5
push edi
push 8
push eax
push ecx
call fcn.00403b40
add esp, 0x10
test eax, eax
jne 0x4dca9e
jmp 0x4de0fa
mov eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x38]
jmp 0x4dca9e
push 8
push eax
push ecx
call fcn.00403b20
add esp, 0xc
mov eax, 8
movq xmm0, qword [esp + 0x148]
mov edx, dword [esp + 0x150]
mov dword [esp + 0x1c], eax
movq qword [esp + 0x90], xmm0
mov dword [esp + 0x98], edx
mov ecx, dword [esp + 0x90]
cmp ecx, edx
jbe 0x4dcb0a
mov eax, dword [esp + 0x94]
shl ecx, 3
test edx, edx
lea ecx, [ecx + ecx*2]
je 0x4dcb13
mov esi, edx
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov dword [esp + 0xc], edx
push edx
push 8
push ecx
push eax
call fcn.00403b40
mov edx, esi
add esp, 0x10
mov edi, dword [esp + 0x24]
test eax, eax
jne 0x4dcb2c
jmp 0x4de107
mov eax, dword [esp + 0x94]
jmp 0x4dcb28
push 8
push ecx
push eax
mov esi, edx
call fcn.00403b20
mov edx, esi
add esp, 0xc
mov eax, 8
mov edi, dword [esp + 0x24]
cmp dword [edi], 2
jne 0x4dcb5c
mov ecx, dword [esp + 0x118]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
xor eax, eax
mov esi, ecx
mov edx, ecx
mov cl, ch
shr esi, 0x10
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], ecx
jmp 0x4db94d
mov esi, dword [esp + 0x50]
test esi, esi
je 0x4dcb82
shl esi, 5
push 8
push esi
push dword [esp + 0x24]
mov esi, eax
mov edi, edx
call fcn.00403b20
mov edx, edi
mov edi, dword [esp + 0x30]
mov eax, esi
add esp, 0xc
test edx, edx
je 0x4db994
shl edx, 3
lea ecx, [edx + edx*2]
push 8
push ecx
push eax
call fcn.00403b20
mov edi, dword [esp + 0x30]
add esp, 0xc
jmp 0x4db994
mov ebx, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], 0
xor edi, edi
jmp 0x4db941
movzx eax, byte [esp + 0x1c9]
mov edx, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1d4]
movzx esi, word [esp + 0x1ca]
mov edi, dword [esp + 0x1cc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], ecx
jmp 0x4db93d
mov edi, ebx
shl ecx, 0x10
xor edx, edx
xor esi, esi
mov bl, 0x13
jmp 0x4dcc23
mov eax, dword [esp + 0x224]
mov esi, dword [esp + 0x22c]
mov edi, dword [esp + 0x228]
mov ebx, ecx
mov edx, eax
shld edx, ecx, 0x18
shrd ecx, eax, 0x10
shr eax, 0x10
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], dl
mov dword [esp + 0x82], ecx
mov word [esp + 0x86], ax
jmp 0x4daacc
mov esi, 3
jmp 0x4dce3b
mov ecx, dword [esp + 0x60]
jmp 0x4dd30b
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 4
mov dword [esp + 0x98], 0
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x14]
test ecx, ecx
mov dword [esp + 0x68], ecx
je 0x4dcdf9
mov ecx, dword [eax + 0x10]
xor edx, edx
mov dword [esp + 0x4c], 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov dword [esp + 0x14], edx
mov esi, eax
jmp 0x4dcce0
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
nop dword [eax]
mov ecx, dword [esp + 0xc]
mov eax, esi
mov esi, eax
sub esi, ecx
jbe 0x4dcdef
shr esi, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
add esi, ecx
mov ecx, dword [esp + 0x18]
lea edx, [esi + esi*2]
cmp dword [ecx + edx*8 + 0x10], eax
ja 0x4dccd0
jb 0x4dcd2b
mov eax, dword [esp + 0x18]
mov ebx, 0
lea edi, [eax + edx*8]
mov eax, dword [esp + 0x2c]
cmp eax, dword [edi]
sbb ebx, dword [edi + 4]
jb 0x4dccc1
cmp eax, dword [edi + 8]
mov ecx, 0
mov ebx, dword [esp + 0x38]
sbb ecx, dword [edi + 0xc]
mov edi, dword [esp + 0x10]
jb 0x4dcd3d
mov eax, dword [esp + 0x34]
inc esi
mov ecx, esi
mov esi, eax
sub esi, ecx
ja 0x4dcce0
jmp 0x4dcdef
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edx*8 + 0x14]
cmp eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
jae 0x4ddf77
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x90]
mov edx, eax
jne 0x4dcd7e
lea ecx, [esp + 0x90]
call fcn.00499aa0
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
jmp 0x4dcd82
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
inc esi
mov dword [esp + 0x4c], eax
shl ecx, 5
add ecx, dword [esp + 0x20]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*2]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x18], ecx
mov ecx, edx
inc ecx
sub dword [esp + 0x68], esi
mov esi, dword [esp + 0x1c]
mov edx, ecx
mov dword [esp + 0x98], ecx
jne 0x4dccb3
jmp 0x4dcdfb
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x188], eax
mov dword [esp + 0x190], esi
mov esi, 4
jmp 0x4dce3b
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
jmp 0x4dcdfb
xor edx, edx
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
lea edx, [ecx + edx*4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x60]
mov edx, dword [edx + 0x24]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18c], ecx
add edx, 8
mov dword [esp + 0x190], eax
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x50]
movq xmm0, qword [esp + 0x188]
mov eax, dword [esp + 0x190]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x98], eax
movq qword [esp + 0x90], xmm0
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x30]
mov byte [esp + 0xc], cl
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], ebx
mov ebx, esi
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x40], eax
lea eax, [eax*4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
lea eax, [eax + 0x28]
mov dword [esp + 0x44], eax
mov eax, ecx
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x74]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], eax
mov al, 1
mov dword [esp + 0x6c], edx
mov dword [esp + 0x4c], eax
nop dword [eax]
lea eax, [ebx - 3]
cmp ebx, 3
mov ecx, 2
cmovae ecx, eax
cmp ecx, 1
je 0x4dd020
cmp ecx, 2
jne 0x4dd2e2
lea ecx, [esp + 0xa5]
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], esi
movzx eax, byte [ecx + 2]
mov byte [esp + 0x2a2], al
movzx eax, word [ecx]
mov ecx, dword [esp + 0xac]
mov word [esp + 0x2a0], ax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xa8], 2
cmp eax, dword [esp + 0x30]
je 0x4dd0c0
lea ecx, [eax - 4]
mov dword [esp + 0x98], ecx
mov esi, dword [eax - 4]
test esi, esi
je 0x4dd0c0
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 8]
xor ebx, ebx
mov dword [esp + 0x34], 0
test edi, edi
mov dword [esp + 0x18], eax
setne byte [esp + 0x28]
test eax, eax
setne byte [esp + 0x68]
or ecx, dword [esi + 0xc]
je 0x4dd146
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x218]
push dword [esp + 0x64]
call fcn.004a0710
add esp, 4
cmp byte [esp + 0x218], 0x4b
jne 0x4dd2e7
mov eax, dword [esp + 0x21c]
test eax, eax
je 0x4dd146
mov ecx, dword [esi + 8]
cmp dword [eax + 4], ecx
jbe 0x4dd146
mov eax, dword [eax]
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*4 + 4]
mov dword [esp + 0x34], edx
mov edx, dword [eax + ecx*4 + 8]
jmp 0x4dd146
lea ecx, [esp + 0xa5]
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
mov ebx, 3
mov dword [esp + 0x18], edi
movzx eax, byte [ecx - 0xe]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], esi
mov byte [esp + 0x1ca], al
movzx eax, word [ecx - 0x10]
mov word [esp + 0x1c8], ax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x98], 2
mov dword [esp + 0xa8], 3
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx - 0xe]
mov byte [esp + 0x2a2], al
movzx eax, word [ecx - 0x10]
mov word [esp + 0x2a0], ax
mov eax, dword [esp + 0x28]
mov ecx, eax
mov ecx, dword [esp + 0x30]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x40]
mov byte [esp + 0x68], al
mov dword [esp + 0x10], eax
mov dword [esp + 0x50], ecx
jmp 0x4dd217
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
test edi, edi
je 0x4dd1a7
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x14c]
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x40], 0
je 0x4dd0fb
push 4
push dword [esp + 0x74]
push eax
call fcn.00403b20
add esp, 0xc
mov dword [esp + 0xa8], 3
lea ecx, [esp + 0xa5]
movzx edx, byte [esp + 0xc]
mov ebx, 3
movzx eax, word [ecx]
mov byte [esp + 0x68], dl
mov word [esp + 0x1c8], ax
movzx eax, byte [ecx + 2]
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x1ca], al
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], eax
jmp 0x4dd1f0
movzx eax, byte [esp + 0x28]
movzx ecx, byte [esp + 0x68]
mov dword [esp + 0x28], edx
mov bl, al
mov eax, dword [esp + 0x34]
mov dword [esp + 0xa0], eax
xor eax, eax
mov al, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov edi, dword [esi]
test edi, edi
je 0x4dd1c2
mov eax, dword [esp + 0x38]
mov esi, dword [esi + 4]
movzx eax, word [eax + 0x14c]
mov word [esp + 0x4c], ax
jmp 0x4dd1c9
mov word [esp + 0x4c], 2
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x40], 0
jne 0x4dd0ec
jmp 0x4dd0fb
mov word [esp + 0x4c], 2
movzx eax, byte [esp + 0x2a2]
mov byte [esp + 0x1ca], al
movzx eax, word [esp + 0x2a0]
mov word [esp + 0x1c8], ax
mov eax, dword [esp + 0x28]
mov byte [esp + 0x68], al
movzx eax, byte [esp + 0x1ca]
movzx ecx, word [esp + 0x1c8]
cmp word [esp + 0x4c], 2
mov byte [esp + 0x2a2], al
mov word [esp + 0x2a0], cx
jne 0x4dd22d
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
push 0
call fcn.004de590
add esp, 4
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x50]
mov dword [esp + 0x218], edi
mov dword [esp + 0x21c], esi
lea ecx, [esp + 0x225]
mov dword [esp + 0x220], eax
movzx eax, byte [esp + 0xc]
mov byte [esp + 0x224], al
movzx eax, word [esp + 0x2a0]
mov word [ecx], ax
movzx eax, byte [esp + 0x2a2]
mov byte [ecx + 2], al
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x218]
push ecx
push dword [esp + 0x70]
call eax
add esp, 8
movzx eax, byte [esp + 0x68]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x4c], 0
mov esi, ebx
mov byte [esp + 0xc], al
mov dword [esp + 0x50], ecx
jmp 0x4dcf10
cmp eax, 2
jb 0x4dd300
cmp dword [esp + 0x40], 0
je 0x4dd300
push 4
push dword [esp + 0x74]
push dword [esp + 0x44]
call fcn.00403b20
add esp, 0xc
test byte [esp + 0x4c], 1
mov ecx, dword [esp + 0x60]
je 0x4dd35f
add ecx, 0x28
mov edx, dword [esp + 0x2c]
push 0
call fcn.004de590
add esp, 4
test eax, eax
je 0x4dd35f
mov esi, dword [esp + 0x1a8]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x94], edx
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x98], eax
mov dword [esp + 0xa0], 3
lea eax, [esp + 0x90]
push eax
push ecx
call dword [esi + 0x10]
add esp, 8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
add ecx, esi
movzx esi, word [eax + 6]
adc edx, dword [esp + 0x1c]
lea eax, [esi*8]
lea edi, [eax + eax*4]
push 0
push edi
push edx
push ecx
push ebx
push dword [esp + 0x24]
call fcn.004e0fd0
add esp, 0x18
test eax, eax
je 0x4d9df1
cmp edi, edx
ja 0x4d9df1
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18c], esi
mov esi, dword [eax + 0xc]
test esi, esi
je 0x4dd4f0
mov eax, dword [eax + 0x10]
mov ecx, 0x12
mov dword [esp + 0x1c], eax
mul ecx
jo 0x4d9df1
mov edi, eax
push 0
push eax
push 0
push esi
push ebx
push dword [esp + 0x24]
call fcn.004e0fd0
add esp, 0x18
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x4d9df1
add esi, edi
setb al
cmp edi, edx
ja 0x4d9df1
xor ecx, ecx
mov cl, al
push 0
push 4
mov dword [esp + 0x50], ecx
push ecx
push esi
push ebx
push dword [esp + 0x24]
call fcn.004e0fd0
add esp, 0x18
test eax, eax
je 0x4d9df1
cmp edx, 3
jbe 0x4d9df1
mov eax, dword [eax]
mov dword [esp + 0x68], esi
add eax, esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
adc eax, 0
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 4
mov dword [esp + 0x98], 0
mov dword [esp + 0x28], eax
je 0x4ddf45
mov edx, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], 4
jmp 0x4ddbde
push 0xa4f81c
jmp 0x4dd4c8
mov eax, 0xa4b404
jmp 0x4dd4b3
mov eax, 0xa4b424
push eax
push esi
push ecx
call fcn.00512540
add esp, 0xc
jmp 0x4de135
push 0xa4b750
push eax
push ecx
call fcn.00512540
add esp, 0xc
ud2
mov eax, 0xa4b404
jmp 0x4dd4e0
mov eax, 0xa4b424
push eax
push ebx
push ecx
call fcn.00512540
add esp, 0xc
jmp 0x4de135
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 4
mov dword [esp + 0x98], 0
mov dword [esp + 0x34], 0
mov ecx, 4
mov dword [esp + 0x68], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
xor esi, esi
lea eax, [esp + 0x184]
test esi, esi
mov edx, 0x20
mov dword [esp + 0x120], eax
mov eax, 0x20
je 0x4dd562
bsr edx, esi
xor edx, 0x1f
sub eax, edx
mov edx, esi
lea edi, [esp + 0x120]
push eax
push 0
push edi
call fcn.00492570
add esp, 0xc
mov eax, dword [esp + 0x98]
movq xmm0, qword [esp + 0x90]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x34]
movq qword [esp + 0x170], xmm0
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x164], ebx
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x16c], eax
push 0xa
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x28], ecx
cmove edx, eax
mov dword [esp + 0x10], edx
push 0xb
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x34]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x24], ecx
cmove edx, eax
mov dword [esp + 0x34], edx
push 0x10
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x40], ecx
cmove edx, eax
mov dword [esp + 0x1c], edx
push 0x11
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x44], ecx
cmove edx, eax
mov dword [esp + 0x14], edx
push 0
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x48]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x60], ecx
cmove edx, eax
mov dword [esp + 0x48], edx
push 1
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x68]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
cmove edx, eax
mov dword [esp + 0x68], edx
push 2
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x74], ecx
cmove edx, eax
mov dword [esp + 0x38], edx
push 7
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x4c]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x70], ecx
cmove edx, eax
mov dword [esp + 0x4c], edx
push 8
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x64], ecx
cmove edx, eax
mov dword [esp + 0x30], edx
push 9
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x6c]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x78], ecx
cmove edx, eax
mov dword [esp + 0x6c], edx
push 0x12
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
test eax, eax
mov ecx, 0xa4a750
cmovne ecx, eax
mov dword [esp + 0x144], ecx
cmove edx, eax
mov dword [esp + 0x20], edx
push 0x13
call fcn.004ee1d0
add esp, 4
mov edi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push edi
call fcn.004de440
add esp, 4
mov edi, edx
test eax, eax
mov ebx, 0xa4a750
cmovne ebx, eax
cmove edi, eax
push 0x15
call fcn.004ee1d0
add esp, 4
mov esi, edx
mov edx, eax
lea ecx, [esp + 0x148]
push esi
call fcn.004de440
add esp, 4
test eax, eax
mov ecx, 0xa4a750
movq xmm0, qword [0xa4a740]
cmovne ecx, eax
cmove edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], 0
mov byte [esp + 0x104], 0
movq qword [esp + 0x90], xmm0
push 4
push 0x78
call fcn.00403b10
add esp, 8
test eax, eax
je 0x4de117
lea esi, [esp + 0x90]
mov ecx, 0x1e
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x120]
mov edx, eax
call fcn.004a3ac0
mov ebx, dword [esp + 0x128]
test ebx, ebx
je 0x4ddf04
movq xmm0, qword [esp + 0x12c]
movq xmm1, qword [esp + 0x134]
mov ecx, dword [esp + 0x13c]
mov esi, dword [esp + 0x120]
mov eax, dword [esp + 0x124]
movq qword [esp + 0x194], xmm0
movq qword [esp + 0x19c], xmm1
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x18c], eax
mov dword [esp + 0x188], esi
mov dword [esp + 0x190], ebx
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x4ddc6e
lock inc dword [edx]
jle 0x4de125
lea ecx, [esp + 0x90]
call fcn.004a3ac0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x4ddef8
movq xmm0, qword [esp + 0x9c]
movq xmm1, qword [esp + 0xa4]
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
movq qword [esp + 0x12c], xmm0
movq qword [esp + 0x134], xmm1
mov dword [esp + 0x13c], edi
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x128], eax
push 4
push 0x20
call fcn.00403b10
add esp, 8
test eax, eax
je 0x4de129
movsd xmm1, qword [esp + 0x130]
mov edi, eax
movq xmm0, qword [esp + 0x138]
movq xmm2, qword [esp + 0x120]
movsd qword [edi + 0x10], xmm1
movq xmm1, qword [esp + 0x128]
movq qword [edi + 0x18], xmm0
movq qword [edi], xmm2
movq qword [edi + 8], xmm1
jmp 0x4ddc70
push 0xa4b740
push edx
push ecx
call fcn.00512540
add esp, 0xc
ud2
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], ecx
inc edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
lea edi, [edi + esi + 1]
cmp edi, dword [esp + 0x1c]
jae 0x4ddf2d
lea eax, [edi + edi*8]
movzx ecx, word [edx + eax*2 + 0xe]
movzx esi, byte [edx + eax*2 + 0x11]
and ecx, 0x30
cmp cx, 0x20
jne 0x4ddbd0
movzx ecx, word [edx + eax*2 + 0xc]
mov dword [esp + 0x34], esi
test cx, cx
je 0x4ddbcc
lea edx, [edx + eax*2]
movzx eax, cx
mov esi, dword [edx + 8]
mov dword [esp + 0x6c], edx
push eax
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x128]
push eax
call fcn.004e1590
add esp, 0xc
cmp dword [esp + 0x120], 0
jne 0x4ddf59
mov eax, dword [esp + 0x124]
test eax, eax
je 0x4ddf59
add esi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
add esi, dword [eax + 0xc]
cmp edx, dword [esp + 0x90]
jne 0x4ddbad
lea ecx, [esp + 0x90]
call fcn.004997f0
jmp 0x4ddb9b
xor edi, edi
test esi, esi
je 0x4ddc88
mov ecx, esi
call fcn.00490120
push 4
push 0x20
push esi
call fcn.00403b20
add esp, 0xc
lea eax, [esp + 0x194]
mov dword [esp + 0x188], edi
mov ecx, dword [esp + 0x18c]
mov edx, edi
lea esi, [esp + 0x1c8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, 0x13
movsd qword [esp + 0x1c8], xmm0
movsd xmm0, qword [esp + 0x178]
movsd qword [esp + 0x1d0], xmm1
mov dword [esp + 0x1d8], eax
movsd xmm1, qword [esp + 0x150]
lea eax, [esp + 0x2a0]
mov edi, eax
movsd qword [esp + 0x20c], xmm0
movsd xmm0, qword [esp + 0x170]
movsd qword [esp + 0x1e4], xmm1
movsd qword [esp + 0x204], xmm0
movsd xmm0, qword [esp + 0x168]
movsd qword [esp + 0x1fc], xmm0
movsd xmm0, qword [esp + 0x160]
movsd qword [esp + 0x1f4], xmm0
movsd xmm0, qword [esp + 0x158]
movsd qword [esp + 0x1ec], xmm0
movsd xmm0, qword [esp + 0x148]
movsd qword [esp + 0x1dc], xmm0
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x224]
mov esi, eax
movq xmm0, qword [esp + 0x80]
mov ecx, dword [esp + 0x88]
movsd xmm1, qword [esp + 0x1b4]
movq xmm2, qword [esp + 0x1ac]
mov dword [esp + 0x2f4], ecx
movq qword [esp + 0x2ec], xmm0
movsd qword [esp + 0x300], xmm1
movq xmm1, qword [esp + 0x1bc]
mov ecx, dword [esp + 0x1c4]
movq qword [esp + 0x2f8], xmm2
mov dword [esp + 0x310], ecx
movq qword [esp + 0x308], xmm1
mov ecx, 0x1d
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x218], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x21c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x220], ebx
mov eax, dword [eax + 0x14]
cmp eax, 4
mov dword [esp + 0x10], eax
jne 0x4dde3f
mov ecx, dword [ebp + 8]
mov eax, 0x198
mov dword [ecx + 0x14], 3
add eax, dword [ecx + 0x10]
push 0x88
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0053b960
add esp, 0xc
cmp dword [esp + 0xa0], 0
je 0x4dde37
lea ecx, [esp + 0x98]
call fcn.004915d0
mov dword [esp + 0x10], 3
lea edi, [esp + 0x98]
lea esi, [esp + 0x218]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp esi, dword [ecx]
mov dword [esp + 0x90], eax
jne 0x4dde76
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0049a3a0
mov eax, dword [ebp + 8]
test esi, esi
mov ebx, dword [eax + 0x10]
je 0x4dded3
mov esi, dword [esp + 0x10]
lea eax, [ebx + 0x88]
mov ecx, esi
shl ecx, 7
lea ecx, [ecx + esi*8]
push ecx
push ebx
push eax
call fcn.0053b958
add esp, 0xc
push 0x88
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.0053b960
add esp, 0xc
mov eax, dword [ebp + 8]
inc esi
mov dword [eax + 0x14], esi
jne 0x4d9f5b
push 0xa4f82c
push 0
push 0
call fcn.00512540
add esp, 0xc
ud2
push 0x88
lea eax, [esp + 0x94]
push eax
push ebx
call fcn.0053b960
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], 1
jmp 0x4d9f5b
lea ecx, [esp + 0x188]
call fcn.00490120
mov eax, dword [esp + 0x170]
test eax, eax
je 0x4d9df1
shl eax, 3
push 4
push eax
push dword [esp + 0x17c]
call fcn.00403b20
add esp, 0xc
jmp 0x4d9df1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x34], eax
jmp 0x4dd540
mov eax, dword [esp + 0x10]
mov ecx, 4
xor esi, esi
mov dword [esp + 0x34], eax
jmp 0x4dd540
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4d9df1
shl eax, 3
push 4
push eax
push dword [esp + 0x9c]
jmp 0x4ddf20
push 0xa4b7f8
push dword [esp + 0x70]
push dword [esp + 0x14]
call fcn.00512540
add esp, 0xc
jmp 0x4de135
mov dword [esp + 0x3c], edx
mov eax, 0xa4b414
push eax
push dword [esp + 0x24]
push dword [esp + 0x44]
call fcn.00518320
add esp, 0xc
jmp 0x4de135
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov eax, 0xa4b414
mov dword [esp + 0x10], ecx
jmp 0x4ddfc8
mov eax, 0xa4b3f4
push eax
push dword [esp + 0x40]
push dword [esp + 0x18]
call fcn.005183a0
add esp, 0xc
jmp 0x4de135
mov dword [esp + 0x44], edx
mov eax, 0xa4b414
push eax
push dword [esp + 0x68]
push dword [esp + 0x4c]
call fcn.00518320
add esp, 0xc
jmp 0x4de135
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
mov eax, 0xa4b414
mov dword [esp + 0x14], ecx
jmp 0x4de015
mov eax, 0xa4b3f4
push eax
push dword [esp + 0x48]
push dword [esp + 0x1c]
call fcn.005183a0
add esp, 0xc
jmp 0x4de135
push 0xa4b730
push eax
push edx
call fcn.00518320
add esp, 0xc
ud2
push 8
push edi
call fcn.00506bc0
add esp, 8
jmp 0x4de135
push 8
push dword [esp + 0x54]
call fcn.00506bc0
add esp, 8
jmp 0x4de135
push 0xa4b808
push 0x2b
push 0xa4add0
call fcn.00512480
add esp, 0xc
ud2
mov eax, 0xa4b3e4
jmp 0x4de015
mov eax, 0xa4b3e4
jmp 0x4ddfe7
mov eax, 0xa4b3e4
jmp 0x4ddfc8
mov eax, 0xa4b3e4
jmp 0x4ddf9a
mov edx, dword [esp + 0x10]
mov eax, 0xa4b3f4
dec edx
cmp edi, edx
mov ecx, edx
mov dword [esp + 0x10], edx
jae 0x4ddf9a
jmp 0x4ddfc8
mov edx, dword [esp + 0x14]
mov eax, 0xa4b3f4
dec edx
cmp esi, edx
mov ecx, edx
mov dword [esp + 0x14], edx
jae 0x4ddfe7
jmp 0x4de015
call fcn.00506b80
jmp 0x4de135
push ebx
push edi
call fcn.00506bc0
add esp, 8
jmp 0x4de135
call fcn.00506b80
jmp 0x4de135
push ebx
push edi
call fcn.00506bc0
add esp, 8
jmp 0x4de135
push 8
push edi
call fcn.00506bc0
add esp, 8
jmp 0x4de135
push 8
push dword [esp + 0x10]
call fcn.00506bc0
add esp, 8
jmp 0x4de135
push 4
push 0x78
call fcn.00506bc0
add esp, 8
jmp 0x4de135
ud2
push 4
push 0x20
call fcn.00506bc0
add esp, 8
ud2