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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x428
mov eax, dword [0x103b9004]
xor eax, esp
mov dword [esp + 0x424], eax
push esi
mov esi, ecx
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push edi
mov eax, dword [esi + 4]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov edi, dword [eax + 0x28c]
mov byte [esp + 0x12], 0
cmp dword [edi + 0x5b0], 0xffff
je 0x10138e32
cmp dword [edi + 0x48c], 0
je 0x10138e32
test edx, edx
je 0x10138e37
xor eax, eax
cmp edx, dword [edi + 0x490]
ja 0x10138e0f
mov eax, dword [edi + 0x48c]
movzx eax, word [eax + edx*2]
mov edx, eax
mov dword [esp + 0x24], edx
test eax, eax
jne 0x10138e37
mov eax, 6
pop edi
pop esi
mov ecx, dword [esp + 0x424]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
cmp edx, dword [edi + 0xc]
jae 0x10138e19
mov eax, ecx
mov dword [esi + 0xa4], 0x10000
or ecx, 3
mov dword [esi + 0xa8], 0x10000
and eax, 0x400
cmove ecx, dword [ebp + 0xc]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x10138e77
mov eax, dword [ecx + 0x10]
mov dword [esi + 0xa4], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0xa8], eax
test dword [esp + 0x30], 0x4000
jne 0x10138e19
cmp dword [edi + 0x768], 0
je 0x10138f29
lea ecx, [edi + 0xb6c]
call fcn.10136720
mov edx, dword [edi + 0x768]
movzx ecx, al
cmp ecx, edx
jb 0x10138eaa
mov al, dl
dec al
mov ecx, dword [edi + 0x570]
movzx eax, al
mov dword [esp + 0x414], ecx
mov eax, dword [edi + eax*4 + 0x76c]
movups xmm1, xmmword [eax + 0x30]
mov edx, dword [eax + 0x44]
mov esi, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x28], edx
movaps xmmword [esp + 0x50], xmm1
movaps xmmword [esp + 0x40], xmm1
mov dword [esp + 0x3c], eax
cmp ecx, edx
je 0x10138f4e
push edx
mov edx, ecx
mov ecx, dword [esi + 0xa4]
call fcn.10116ea0
mov edx, dword [esp + 0x418]
add esp, 4
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0xa4], eax
push dword [esp + 0x28]
call fcn.10116ea0
add esp, 4
mov dword [esi + 0xa8], eax
mov byte [esp + 0x12], 1
jmp 0x10138f4e
movups xmm0, xmmword [edi + 0x55c]
mov eax, dword [edi + 0x574]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x578]
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x30]
lea ecx, [esi + 0x6c]
xor eax, eax
mov dword [esp + 0x18], ecx
mov word [ecx], ax
mov ecx, dword [esp + 0x20]
mov word [esi + 0x6e], ax
mov eax, edx
shr eax, 1
not dl
not al
mov dword [esi + 0x48], 0x6f75746c
and eax, 0xffffff01
and dl, 1
mov byte [esi + 0xa1], dl
xor edx, edx
mov dword [esp + 0x28], eax
mov byte [esi + 0xa0], al
mov eax, dword [ecx + 0x28c]
lea ecx, [esp + 0x68]
push 0x3a4
mov dword [esp + 0x418], eax
call fcn.100a44c0
mov eax, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x6c], eax
mov word [esp + 0xa8], 0x100
mov dword [esp + 0x70], esi
mov eax, dword [eax + 0x64]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
lea edx, [eax + 0x14]
mov dword [esp + 0x78], edx
lea ecx, [eax + 0x38]
xor eax, eax
cmp byte [esp + 0x28], 0
mov dword [esp + 0x7c], ecx
mov dword [edx], eax
mov dword [edx + 0x1c], eax
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [ecx + 0x10], xmm0
mov eax, dword [edx + 0x20]
mov dword [ecx + 0x20], eax
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
je 0x10139040
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10139040
mov eax, dword [eax + 0x28]
mov eax, dword [eax]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x9c]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xac], eax
mov edx, dword [esp + 0x414]
xorps xmm0, xmm0
movups xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xb4], edx
mov ecx, dword [edx + 0x5c]
mov dword [esp + 0x3e4], ecx
mov eax, dword [edx + 0x51c]
mov dword [esp + 0x3f4], eax
cmp dword [edx + 0x558], 1
jne 0x10139093
xor eax, eax
jmp 0x101390b4
cmp ecx, 0x4d8
jae 0x101390a2
mov eax, 0x6b
jmp 0x101390b4
cmp ecx, 0x846c
sbb eax, eax
and eax, 0xffff846b
add eax, 0x8000
mov edx, dword [esp + 0x24]
mov ecx, 1
mov dword [esp + 0x3ec], eax
mov eax, dword [esp + 0x30]
sar eax, 0x10
and eax, 0xf
mov byte [esp + 0xaa], 0
test dword [esp + 0x30], 0x100
mov dword [esp + 0x400], eax
movzx eax, byte [esp + 0x359]
cmovne eax, ecx
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x359], al
lea eax, [esp + 0x418]
push eax
lea eax, [esp + 0x418]
push eax
call fcn.10138c80
add esp, 8
test eax, eax
jne 0x10138e1e
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x28c]
mov dword [esp + 0x14], eax
cmp dword [eax + 0x768], 0
lea ecx, [eax + 0x52c]
je 0x10139196
mov edx, dword [esp + 0x24]
lea ecx, [eax + 0xb6c]
call fcn.10136720
movzx edx, al
mov eax, dword [esp + 0x14]
cmp edx, dword [eax + 0x768]
jb 0x1013916f
mov eax, 3
pop edi
pop esi
mov ecx, dword [esp + 0x424]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xac], 0
mov ecx, dword [eax + edx*4 + 0x76c]
je 0x10139196
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10139196
mov eax, dword [eax + 0x28]
mov eax, dword [eax + edx*4 + 4]
mov dword [esp + 0xb0], eax
mov edx, dword [ecx + 0x220]
mov dword [esp + 0x3e0], edx
mov eax, dword [ecx + 0x238]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0xb4]
cmp dword [eax + 0x558], 1
jne 0x101391c4
xor eax, eax
jmp 0x101391e5
cmp edx, 0x4d8
jae 0x101391d3
mov eax, 0x6b
jmp 0x101391e5
cmp edx, 0x846c
sbb eax, eax
and eax, 0xffff846b
add eax, 0x8000
mov dword [esp + 0x3e8], eax
mov eax, dword [ecx + 0x210]
mov dword [esp + 0x350], eax
mov eax, dword [ecx + 0x214]
mov dword [esp + 0x354], eax
mov dword [esp + 0x408], ecx
push dword [esp + 0x418]
mov edx, dword [esp + 0x418]
lea ecx, [esp + 0x6c]
call fcn.1013a720
add esp, 4
mov dword [esp + 0x14], eax
cmp al, 0xa4
jne 0x1013925e
push dword [esp + 0x418]
mov edx, dword [esp + 0x418]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2c], 0
mov byte [esp + 0x16], 1
mov byte [esi + 0xa0], 0
call fcn.1013a720
add esp, 4
mov dword [esp + 0x14], eax
push dword [esp + 0x418]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x418]
call fcn.10138d00
mov eax, dword [esp + 0x18]
add esp, 4
test eax, eax
jne 0x10138e1e
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x80]
cmp dword [eax + 0x30], 0
je 0x1013937b
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x70]
test edi, edi
je 0x101392c9
mov eax, dword [esp + 0x78]
movups xmm0, xmmword [eax]
movups xmmword [edi + 0x6c], xmm0
mov eax, dword [eax + 0x10]
mov dword [edi + 0x7c], eax
mov eax, dword [ecx + 0x80]
mov edi, dword [eax + 0x30]
test edi, edi
je 0x101393b5
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov dword [esp + 0x414], eax
test eax, eax
je 0x101393b5
mov eax, dword [esp + 0x88]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x428], eax
lea eax, [esp + 0x41c]
push eax
push 0
push edx
mov dword [esp + 0x42c], 0
push dword [edi + 4]
call dword [esp + 0x424]
mov edx, dword [esp + 0x42c]
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x88], edx
test eax, eax
jne 0x10138e1e
mov ecx, dword [esp + 0x20]
jmp 0x101393bc
mov eax, dword [edi + 0x4b0]
test eax, eax
je 0x101392ac
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + edx*4]
mov eax, dword [edi + 0x4b4]
dec eax
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x88], eax
mov eax, dword [esp + 0x418]
mov dword [esi + 0x8c], eax
jmp 0x101392b0
mov edx, dword [esp + 0x88]
test dword [esp + 0x30], 0x400
mov eax, dword [esp + 0x350]
mov dword [esi + 0x28], eax
je 0x1013940c
mov ecx, dword [esi + 0x9c]
mov eax, dword [esp + 0x38]
movaps xmm0, xmmword [esp + 0x50]
mov dword [esi + 0x20], edx
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x14]
movups xmmword [ecx + 0xc], xmm0
mov dword [ecx + 0x20], edx
mov byte [ecx + 8], 1
pop edi
pop esi
mov ecx, dword [esp + 0x424]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x9c]
mov byte [eax + 8], 0
cmp byte [ecx + 0x124], 0
je 0x10139481
cmp word [ecx + 0x14a], 0
jbe 0x10139481
mov eax, dword [ecx + 0x210]
lea edx, [esp + 0x418]
push edx
lea edx, [esp + 0x418]
mov dword [esp + 0x418], 0
push edx
push dword [esp + 0x2c]
mov dword [esp + 0x424], 0
mov eax, dword [eax + 0x70]
push 1
push ecx
mov byte [esp + 0x27], 1
call eax
movsx eax, word [esp + 0x428]
add esp, 0x14
movzx ecx, word [esp + 0x418]
mov dword [esi + 0x30], eax
jmp 0x101394b4
mov eax, 0xffff
mov byte [esp + 0x13], 0
cmp word [ecx + 0x16c], ax
je 0x101394a4
movsx eax, word [ecx + 0x1b4]
movsx ecx, word [ecx + 0x1b2]
jmp 0x101394b2
movsx eax, word [ecx + 0xde]
movsx ecx, word [ecx + 0xdc]
sub ecx, eax
mov dword [esi + 0x34], ecx
xor eax, eax
mov edx, dword [esp + 0x34]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x48], 0x6f75746c
mov dword [esi + 0x7c], 0
test edx, edx
je 0x101394df
cmp word [edx + 0xe], 0x18
mov ecx, 0x100
cmovb eax, ecx
or eax, 4
cmp dword [esp + 0x40], 0x10000
mov dword [esi + 0x7c], eax
jne 0x10139507
cmp dword [esp + 0x4c], 0x10000
jne 0x10139507
cmp dword [esp + 0x44], 0
jne 0x10139507
cmp dword [esp + 0x48], 0
je 0x10139541
lea ecx, [esi + 0x6c]
test ecx, ecx
je 0x10139544
mov edi, dword [ecx + 4]
movsx eax, word [ecx + 2]
lea eax, [edi + eax*8]
mov dword [esp + 0x414], eax
cmp edi, eax
jae 0x10139544
mov esi, eax
lea edx, [esp + 0x40]
mov ecx, edi
call fcn.1011a100
add edi, 8
cmp edi, esi
jb 0x10139525
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
jmp 0x10139544
lea ecx, [esi + 0x6c]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
test edi, edi
jne 0x10139554
test eax, eax
je 0x1013955f
push eax
mov edx, edi
call fcn.1011a0c0
add esp, 4
mov eax, dword [esi + 0x28]
lea edx, [esp + 0x40]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.1011a100
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x40]
add eax, edi
mov dword [esp + 0x18], 0
mov dword [esi + 0x28], eax
lea ecx, [esp + 0x18]
mov eax, dword [esi + 0x34]
mov dword [esp + 0x1c], eax
call fcn.1011a100
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x3c]
test byte [esp + 0x30], 1
mov dword [esi + 0x34], eax
je 0x101395bd
cmp byte [esp + 0x12], 0
je 0x101396e0
cmp byte [esp + 0x28], 0
mov eax, dword [esi + 0xa4]
mov edi, dword [esi + 0x70]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x414], eax
je 0x101395ec
cmp dword [esp + 0xac], 0
jne 0x10139675
movsx eax, word [esi + 0x6e]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x10139675
mov esi, eax
nop word [eax + eax]
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [edi], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x414]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
lea edi, [edi + 8]
dec esi
mov dword [edi - 4], eax
test esi, esi
jg 0x10139600
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x414]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x34], eax
lea edx, [esp + 0x41c]
lea ecx, [esi + 0x6c]
call fcn.1011a010
mov eax, dword [esp + 0x424]
mov edi, dword [esp + 0x41c]
sub eax, edi
mov ecx, dword [esp + 0x428]
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esp + 0x420]
cmp byte [esp + 0x13], 0
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], ecx
je 0x10139747
mov eax, dword [esi + 0x28]
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x2c], edi
pop edi
pop esi
mov ecx, dword [esp + 0x424]
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret
test byte [esp + 0x30], 0x10
je 0x10139759
mov edx, dword [esi + 0x34]
lea ecx, [esi + 0x18]
call fcn.101187b0
mov ecx, dword [esp + 0x42c]
mov eax, dword [esp + 0x14]
pop edi
pop esi
xor ecx, esp
call fcn.101f3fd0
mov esp, ebp
pop ebp
ret