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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x5ba200]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
mov esi, dword [edi]
test esi, esi
je 0x4ae78c
cmp byte [esi + 0x38], 0
je 0x4ae702
cmp byte [ebp + 8], 0
mov byte [esi + 0x38], 0
je 0x4aeaeb
mov eax, dword [esi]
jmp 0x4aeae3
cmp byte [ebp + 8], 0
lea ebx, [esi + 0x14]
mov dword [esi], 0
xorps xmm0, xmm0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
movups xmmword [ebx], xmm0
movq qword [ebx + 0x10], xmm0
mov dword [ebx + 0x18], 0
je 0x4ae750
push 1
push 0
push 0
push 0
push ebx
call dword [0x55366c]
jmp 0x4ae75d
push 0
push 0
push 0
push ebx
call dword [0x55354c]
mov dword [esp + 0xc], eax
test eax, eax
je 0x4ae77a
mov edx, dword [esi + 0x18]
cmp edx, 0xcae
jne 0x4ae7a2
mov dword [esi], 0xfffffffa
mov byte [esi + 0x39], 1
cmp byte [ebp + 8], 0
je 0x4ae9a2
test eax, eax
jne 0x4ae9b1
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.00535f85
mov esp, ebp
pop ebp
ret 4
test edx, edx
je 0x4aeaeb
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x4ae77a
cmp edx, 0xcb1
jne 0x4ae77a
mov edx, dword [ecx + 0x3c]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xc], eax
test edx, edx
je 0x4aeaeb
cmp eax, 1
jl 0x4aeaeb
cmp eax, dword [ecx + 0x40]
jg 0x4aeaeb
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x4aeaeb
mov edx, dword [esi + 0x20]
cmp edx, 0x205
jne 0x4ae830
mov eax, dword [ecx + 0x1c0]
mov edx, dword [ebx]
test eax, eax
je 0x4aeaeb
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffffea
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], 0x205
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], edx
jmp 0x4ae979
cmp edx, 0x203
jne 0x4ae872
mov eax, dword [ecx + 0x1c0]
mov edx, dword [ebx]
test eax, eax
je 0x4aeaeb
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xfffffff2
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], 0x203
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], edx
jmp 0x4ae979
cmp edx, 0x202
jne 0x4ae890
push 0
push 0
push dword [ebx]
push edx
mov edx, dword [esp + 0x1c]
push edx
call fcn.00439a20
jmp 0x4aeaeb
cmp edx, 0x402
jne 0x4ae8d2
mov eax, dword [ecx + 0x1c0]
mov edx, dword [ebx]
test eax, eax
je 0x4aeaeb
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff35
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], 0x402
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], edx
jmp 0x4ae979
cmp edx, 0x403
je 0x4ae948
cmp edx, 0x404
je 0x4ae948
mov ebx, dword [ebx]
mov eax, dword [ecx + 0x1c0]
cmp edx, 0x405
jne 0x4ae91d
test eax, eax
je 0x4aeaeb
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff34
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], ebx
jmp 0x4ae979
test eax, eax
je 0x4aeaeb
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff36
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], ebx
jmp 0x4ae979
mov eax, dword [ecx + 0x1c0]
mov esi, dword [ebx]
test eax, eax
je 0x4aeaeb
mov dword [eax + 0x30], ecx
mov eax, dword [ecx + 0x1c0]
mov dword [eax], 0xffffff33
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 8], edx
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 4], esi
mov eax, dword [ecx + 0x1c0]
mov edx, dword [esp + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ecx + 0x1c0]
mov dword [eax + 0x10], 0
mov eax, dword [ecx + 0x1c0]
mov byte [eax + 0x38], 1
jmp 0x4aeaeb
test eax, eax
jg 0x4ae9b1
mov dword [esi], 0xfffffed4
jmp 0x4ae78c
cmp dword [esi + 0x18], 0x100
jne 0x4aea73
mov eax, dword [esi + 0x30]
mov dword [esp + 0x10], eax
test eax, eax
je 0x4aea73
mov eax, 0xd
cmp ax, word [esi + 0x1c]
jne 0x4aea73
mov eax, dword [ebx]
xor ecx, ecx
mov dword [esp + 0x14], eax
test eax, eax
je 0x4aea4d
push 0xfffffffffffffff4
push eax
call dword [0x553664]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x3c]
test edx, edx
je 0x4aea49
cmp eax, 1
jl 0x4aea49
cmp eax, dword [ecx + 0x40]
jg 0x4aea49
lea ecx, [eax + eax*8]
cmp dword [edx + ecx*8 + 0xc], 0
je 0x4aea49
mov ecx, dword [esp + 0x14]
lea edi, [eax + eax*8]
cmp dword [edx + edi*8 + 4], ecx
mov edi, dword [esp + 0x18]
jne 0x4aea49
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + 0x3c]
test ecx, ecx
je 0x4aea4b
cmp eax, dword [edx + 0x40]
jg 0x4aea4b
lea edx, [eax + eax*8]
cmp dword [ecx + edx*8 + 0xc], 0
je 0x4aea4b
mov ecx, dword [ecx + edx*8]
cmp ecx, 0x23
je 0x4aea57
cmp ecx, 0x24
jne 0x4aea4d
jmp 0x4aea57
xor eax, eax
xor ecx, ecx
cmp ecx, 0x22
je 0x4aea57
cmp ecx, 0x25
jne 0x4aea73
mov ecx, dword [ebx]
push ecx
movzx eax, ax
push eax
push 0x111
push ecx
call dword [0x553570]
push eax
call dword [0x553580]
jmp 0x4aeadf
mov eax, dword [esi + 0x34]
test eax, eax
je 0x4aeabe
test ebx, ebx
jne 0x4aea82
xor cl, cl
jmp 0x4aeaba
mov ecx, dword [eax + 0x244]
add eax, 0x230
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x4aeaac
push ebx
push ecx
push dword [eax]
call dword [0x5535f8]
test eax, eax
setne cl
test eax, eax
jne 0x4aeaba
mov eax, dword [esp + 0x18]
push ebx
push dword [eax]
call dword [0x553694]
test eax, eax
setne cl
test cl, cl
jne 0x4aeacc
push ebx
call dword [0x5535f0]
push ebx
call dword [0x55365c]
mov al, byte [ebp + 8]
mov byte [esi + 0x38], 0
cmp al, 1
jne 0x4aeadb
mov eax, dword [esi]
jmp 0x4aeae3
cmp al, 2
je 0x4aeaeb
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4ae78c
cmp dword [edi + 0x678], 4
jne 0x4aeb63
mov eax, dword [edi]
mov ecx, dword [eax]
lea eax, [ecx + 0x1a]
cmp eax, 0x1a
ja 0x4aeb41
cmp ecx, 0xfffffffe
je 0x4aeb41
cmp ecx, 0xfffffff9
je 0x4aeb41
cmp ecx, 0xfffffff8
je 0x4aeb41
cmp ecx, 0xfffffff6
je 0x4aeb41
cmp ecx, 0xfffffff3
je 0x4aeb41
cmp ecx, 0xfffffff2
je 0x4aeb41
cmp ecx, 0xffffffee
je 0x4aeb41
cmp ecx, 0xffffffed
je 0x4aeb41
cmp ecx, 0xffffffec
je 0x4aeb41
cmp ecx, 0xffffffe7
je 0x4aeb41
cmp ecx, 0xfffffff5
je 0x4aeb41
cmp ecx, 0xffffffea
je 0x4aeb41
cmp ecx, 0xfffffffa
jne 0x4aeb63
lea ecx, [edi + 0x668]
call fcn.0043b9f0
cmp dword [edi + 0x1c24], 0
jne 0x4aeb63
mov eax, dword [edi]
cmp byte [eax + 0x39], 0
je 0x4aeb63
mov dword [eax], 0xfffffffa
mov ecx, dword [edi]
mov edx, dword [ecx + 0x30]
cmp edx, dword [edi + 4]
jne 0x4aeba8
mov eax, dword [edi + 8]
mov ecx, dword [ecx]
cmp ecx, dword [eax + 0xc]
jne 0x4aeb84
mov ecx, dword [edi + 0x20]
sub esp, 0xc
call fcn.00419130
jmp 0x4aebc4
cmp ecx, dword [eax + 4]
jne 0x4aebc4
cmp dword [edi + 0x1c20], 0
je 0x4aeb99
mov ecx, edi
call fcn.004dac50
sub esp, 0xc
mov ecx, 0x589ed0
call fcn.00419130
jmp 0x4aebc4
lea eax, [edi + 0x980]
cmp edx, eax
jne 0x4aebc4
mov eax, dword [ecx]
test eax, eax
jle 0x4aebc4
cmp eax, dword [edi + 0x910]
jne 0x4aebc4
mov byte [edi + 0x40], 1
mov eax, dword [edi + 0x1c24]
test eax, eax
jne 0x4aebdc
cmp dword [edi + 0x1c20], eax
je 0x4af04f
jmp 0x4aebe5
cmp eax, 6
jg 0x4aec98
mov eax, dword [edi]
cmp byte [eax + 0x39], 0
jne 0x4aec98
mov esi, dword [0x5535ac]
push 1
call esi
test ax, ax
js 0x4af04f
push 2
call esi
test ax, ax
js 0x4af04f
mov eax, dword [edi + 0x1c24]
mov ebx, dword [0x553354]
cmp dword [edi + 0x1c20], eax
jne 0x4aec93
movsd xmm0, qword [edi + 0x1c38]
lea esi, [edi + 0x1c30]
ucomisd xmm0, qword [0x5a8008]
movsd qword [esp + 0x18], xmm0
lahf
test ah, 0x44
jnp 0x4aec69
push esi
call ebx
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.00547480
divsd xmm0, qword [esi + 0x10]
subsd xmm0, qword [esp + 0x18]
comisd xmm0, xmmword [0x5a8168]
ja 0x4aec86
cmp dword [edi + 0x678], 4
jne 0x4aec86
push dword [edi + 0x8c8]
call dword [0x553510]
test eax, eax
jne 0x4af04f
mov eax, dword [edi + 0x1c20]
inc eax
mov dword [edi + 0x1c24], eax
cmp eax, 6
jle 0x4aecb6
mov ecx, edi
call fcn.004dac50
movzx eax, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.00535f85
mov esp, ebp
pop ebp
ret 4
lea esi, [edi + 0x1c30]
mov dword [esp + 0xc], 0xffffffff
push esi
mov dword [esp + 0x14], 0xffffffff
call ebx
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.00547480
divsd xmm0, qword [esi + 0x10]
movsd qword [esi + 8], xmm0
mov eax, dword [edi + 0x1c24]
cmp eax, 1
jne 0x4aedad
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 0x40
push dword [eax + 0x78]
call fcn.00435500
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 0x40
push dword [eax + 0x7c]
call fcn.00435500
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 0x40
push dword [eax + 0x80]
call fcn.00435500
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 0x40
push dword [eax + 0x90]
call fcn.00435500
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x64]
mov eax, dword [edi + 4]
lea edx, [eax + 0x3c]
cmp ecx, 0xffffffff
jne 0x4aed4e
mov ecx, dword [eax + 0x40]
jmp 0x4aed68
mov esi, dword [edx]
test esi, esi
je 0x4aed80
cmp ecx, 1
jl 0x4aed80
cmp ecx, dword [eax + 0x40]
jg 0x4aed80
lea eax, [ecx + ecx*8]
cmp dword [esi + eax*8 + 0xc], 0
je 0x4aed80
mov eax, dword [edx]
lea ecx, [ecx + ecx*8]
push 0
push 0
push 0x1330
push dword [eax + ecx*8 + 4]
call dword [0x553580]
lea eax, [esp + 0x10]
mov ecx, edi
push eax
lea eax, [esp + 0x10]
push eax
push 0
call fcn.004dab70
push 0
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push 0x589f08
jmp 0x4af03c
cmp eax, 2
jne 0x4aee27
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x64]
mov eax, dword [edi + 4]
lea edx, [eax + 0x3c]
cmp ecx, 0xffffffff
jne 0x4aedc8
mov ecx, dword [eax + 0x40]
jmp 0x4aede2
mov esi, dword [edx]
test esi, esi
je 0x4aedfa
cmp ecx, 1
jl 0x4aedfa
cmp ecx, dword [eax + 0x40]
jg 0x4aedfa
lea eax, [ecx + ecx*8]
cmp dword [esi + eax*8 + 0xc], 0
je 0x4aedfa
mov eax, dword [edx]
lea ecx, [ecx + ecx*8]
push 0
push 1
push 0x1330
push dword [eax + ecx*8 + 4]
call dword [0x553580]
lea eax, [esp + 0x10]
mov ecx, edi
push eax
lea eax, [esp + 0x10]
push eax
push 1
call fcn.004dab70
push 0
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push 0x58a040
jmp 0x4af03c
cmp eax, 3
jne 0x4aeea1
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x64]
mov eax, dword [edi + 4]
lea edx, [eax + 0x3c]
cmp ecx, 0xffffffff
jne 0x4aee42
mov ecx, dword [eax + 0x40]
jmp 0x4aee5c
mov esi, dword [edx]
test esi, esi
je 0x4aee74
cmp ecx, 1
jl 0x4aee74
cmp ecx, dword [eax + 0x40]
jg 0x4aee74
lea eax, [ecx + ecx*8]
cmp dword [esi + eax*8 + 0xc], 0
je 0x4aee74
mov eax, dword [edx]
lea ecx, [ecx + ecx*8]
push 0
push 2
push 0x1330
push dword [eax + ecx*8 + 4]
call dword [0x553580]
lea eax, [esp + 0x10]
mov ecx, edi
push eax
lea eax, [esp + 0x10]
push eax
push 2
call fcn.004dab70
push 0
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push 0x58a1a0
jmp 0x4af03c
cmp eax, 4
jne 0x4aef1b
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x64]
mov eax, dword [edi + 4]
lea edx, [eax + 0x3c]
cmp ecx, 0xffffffff
jne 0x4aeebc
mov ecx, dword [eax + 0x40]
jmp 0x4aeed6
mov esi, dword [edx]
test esi, esi
je 0x4aeeee
cmp ecx, 1
jl 0x4aeeee
cmp ecx, dword [eax + 0x40]
jg 0x4aeeee
lea eax, [ecx + ecx*8]
cmp dword [esi + eax*8 + 0xc], 0
je 0x4aeeee
mov eax, dword [edx]
lea ecx, [ecx + ecx*8]
push 0
push 3
push 0x1330
push dword [eax + ecx*8 + 4]
call dword [0x553580]
lea eax, [esp + 0x10]
mov ecx, edi
push eax
lea eax, [esp + 0x10]
push eax
push 3
call fcn.004dab70
push 0
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push 0x58a328
jmp 0x4af03c
cmp eax, 5
jne 0x4aefae
mov eax, dword [edi + 8]
mov edx, dword [edi + 4]
mov eax, dword [eax + 0x50]
test eax, eax
jne 0x4aef39
mov eax, dword [edx + 0x230]
jmp 0x4aef65
lea ecx, [edx + 0x40]
cmp eax, 0xffffffff
jne 0x4aef43
mov eax, dword [ecx]
mov edx, dword [edx + 0x3c]
test edx, edx
je 0x4aef63
cmp eax, 1
jl 0x4aef63
cmp eax, dword [ecx]
jg 0x4aef63
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x4aef63
mov eax, dword [edx + eax*8 + 4]
jmp 0x4aef65
xor eax, eax
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [0x553528]
mov eax, dword [edi + 4]
lea ecx, [esp + 0x18]
push 2
push ecx
push dword [eax + 0x230]
push 0
call dword [0x553668]
mov eax, dword [esp + 0x1c]
push 0x12c0
add eax, 0xa
push eax
mov eax, dword [esp + 0x20]
add eax, 0x28
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push 0x58a4d8
jmp 0x4af03c
cmp eax, 6
jne 0x4af043
mov eax, dword [edi + 8]
mov edx, dword [edi + 4]
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x4aefcc
mov eax, dword [edx + 0x230]
jmp 0x4aeff8
lea ecx, [edx + 0x40]
cmp eax, 0xffffffff
jne 0x4aefd6
mov eax, dword [ecx]
mov edx, dword [edx + 0x3c]
test edx, edx
je 0x4aeff6
cmp eax, 1
jl 0x4aeff6
cmp eax, dword [ecx]
jg 0x4aeff6
lea eax, [eax + eax*8]
cmp dword [edx + eax*8 + 0xc], 0
je 0x4aeff6
mov eax, dword [edx + eax*8 + 4]
jmp 0x4aeff8
xor eax, eax
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [0x553528]
mov eax, dword [edi + 4]
lea ecx, [esp + 0x18]
push 2
push ecx
push dword [eax + 0x230]
push 0
call dword [0x553668]
mov eax, dword [esp + 0x1c]
push 0x12c0
add eax, 0x21
push eax
mov eax, dword [esp + 0x20]
add eax, 0x1e
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push 0x58a660
mov ecx, edi
call fcn.004eacb0
mov eax, dword [edi + 0x1c24]
mov dword [edi + 0x1c20], eax
mov ecx, dword [esp + 0x2c]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00535f85
mov esp, ebp
pop ebp
ret 4