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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x56e06e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4bc
mov eax, 0xd
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x60], eax
push esi
lea eax, [esp + 0x14]
push edi
push eax
push 0x5ca440
mov ecx, ebx
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 1
sete cl
mov eax, ecx
xor edi, edi
cmp eax, edi
je 0x4add6f
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
mov dword [esp + 0x88], edx
call fcn.004b24e0
lea eax, [esp + 0x18]
mov ecx, ebx
push eax
push 0x5c9228
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 1
sete cl
mov eax, ecx
cmp eax, edi
je 0x4add68
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
mov dword [esp + 0x80], edx
call fcn.004b24e0
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], edi
cmp eax, 4
lea eax, [esp + 0x18]
mov dword [esp + 0x84], edi
push eax
jne 0x4ad5b3
push 0x5ca434
mov ecx, ebx
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 1
sete cl
mov eax, ecx
cmp eax, edi
je 0x4ad5a9
mov edx, dword [esp + 0x20]
mov dword [esp + 0x84], edx
jmp 0x4ad5db
push 0x5ca3fc
jmp 0x4add74
push 0x5ca3ec
mov ecx, ebx
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 1
sete cl
mov eax, ecx
cmp eax, edi
je 0x4add61
mov edx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x18]
call fcn.004b24e0
lea eax, [esp + 0x18]
mov ecx, ebx
push eax
push 0x5ba480
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 6
sete cl
mov eax, ecx
cmp eax, edi
je 0x4add5a
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0xc], 6
jl 0x4add5a
lea edx, [esp + 0x68]
push edx
push edi
call fcn.004bc920
cmp dword [eax], 1
jne 0x4ad633
fild dword [eax + 8]
fstp qword [esp + 0x8c]
jmp 0x4ad647
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], edx
lea ecx, [esp + 0x68]
call fcn.004b24e0
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push eax
push 1
call fcn.004bc920
cmp dword [eax], 1
jne 0x4ad66e
fild dword [eax + 8]
fstp qword [esp + 0x5c]
jmp 0x4ad67c
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
lea ecx, [esp + 0x68]
call fcn.004b24e0
fld qword [0x573680]
fild dword [esp + 0x88]
call fcn.005046e0
fsub qword [0x571818]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push eax
push 2
fstp qword [esp + 0x34]
fld qword [esp + 0x64]
fsub qword [esp + 0x94]
fdiv qword [esp + 0x34]
fstp qword [esp + 0xc4]
call fcn.004bc920
cmp dword [eax], 1
jne 0x4ad6d5
fild dword [eax + 8]
fstp qword [esp + 0x5c]
jmp 0x4ad6e3
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
lea ecx, [esp + 0x68]
call fcn.004b24e0
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push eax
push 3
call fcn.004bc920
cmp dword [eax], 1
jne 0x4ad70a
fild dword [eax + 8]
fstp qword [esp + 0xc]
jmp 0x4ad718
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
lea ecx, [esp + 0x68]
call fcn.004b24e0
fld qword [esp + 0xc]
fsub qword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
xor esi, esi
fdiv qword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
cmp eax, 5
fstp qword [esp + 0xb4]
jle 0x4ad7f0
mov edi, 5
cmp edi, 0x45
jge 0x4ad7ee
lea eax, [esp + 0x68]
lea edx, [edi - 1]
push eax
push edx
call fcn.004bc920
cmp dword [eax], 1
jne 0x4ad76c
fild dword [eax + 8]
jmp 0x4ad76f
fld qword [eax + 8]
fst qword [esp + 0x2c]
fstp qword [esp + esi*8 + 0x1c8]
lea ecx, [esp + 0x68]
call fcn.004b24e0
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004bc920
cmp dword [eax], 1
jne 0x4ad79c
fild dword [eax + 8]
jmp 0x4ad79f
fld qword [eax + 8]
fst qword [esp + 0xc]
fstp qword [esp + esi*8 + 0x3c8]
lea ecx, [esp + 0x68]
call fcn.004b24e0
mov ecx, dword [esp + 0x80]
mov edx, 1
fld qword [esp + 0xc]
fsub qword [esp + 0x2c]
shl edx, cl
mov ecx, dword [esp + 0x20]
add edi, 2
mov eax, dword [ecx + 0xc]
dec edx
inc esi
mov dword [esp + 0xc], edx
cmp edi, eax
fild dword [esp + 0xc]
fdivp st(1)
fstp qword [esp + esi*8 + 0x2c0]
jl 0x4ad74b
xor edi, edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x44], esi
call fcn.004b24e0
lea eax, [esp + 0x18]
mov ecx, ebx
push eax
push 0x5ca2b0
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 5
sete cl
mov eax, ecx
cmp eax, edi
jne 0x4ad8e2
cmp dword [esp + 0x18], 6
jne 0x4ad8bd
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
cmp eax, 0x20
mov dword [esp + 0x58], eax
jle 0x4ad863
push 0x5ca280
push 0xffffffffffffffff
call fcn.004cda10
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x4c8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
cmp eax, edi
jle 0x4ad8e6
mov ebx, dword [esp + 0x58]
lea edi, [esp + 0xc8]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push eax
push esi
call fcn.004bc920
lea ecx, [esp + 0x68]
push ecx
call fcn.004dcd30
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4ad8ab
lea ecx, [esp + 0x68]
call fcn.004b24e0
inc esi
add edi, 4
cmp esi, ebx
jl 0x4ad874
xor edi, edi
jmp 0x4ad8e6
lea ecx, [esp + 0x18]
call fcn.004b24e0
lea ecx, [esp + 0x68]
jmp 0x4add82
lea edx, [esp + 0x18]
mov dword [esp + 0x58], 1
push edx
call fcn.004dcd30
add esp, 4
cmp eax, edi
mov dword [esp + 0xc8], eax
jne 0x4ad8e6
jmp 0x4add7e
mov dword [esp + 0x58], edi
lea ecx, [esp + 0x18]
call fcn.004b24e0
push 0xc
mov dword [esp + 0x38], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x7c], edi
call fcn.0055d252
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, edi
mov dword [esp + 0x4d0], edi
je 0x4ad93c
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, eax
call fcn.004ad180
mov dword [esp + 0x38], eax
jmp 0x4ad940
mov dword [esp + 0x38], edi
or eax, 0xffffffff
xor ebx, ebx
mov dword [esp + 0x4d0], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edi
cmp dword [ebp + 8], 4
jne 0x4ad980
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x78]
mov ecx, esi
push edx
push eax
call fcn.004ad1b0
test eax, eax
je 0x4adc0e
jmp 0x4ad984
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x88]
lea ecx, [esp + 0x94]
push ecx
push edi
mov ecx, esi
call fcn.004ad1b0
test eax, eax
je 0x4adc0e
lea edx, [esp + 0x98]
mov ecx, esi
push edx
push edi
call fcn.004ad1b0
test eax, eax
je 0x4adc0e
mov eax, dword [esp + 0x44]
xor edi, edi
test eax, eax
jle 0x4ad9fa
lea esi, [esp + 0x148]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x38]
push esi
push eax
call fcn.004ad1b0
test eax, eax
je 0x4ad9f0
mov eax, dword [esp + 0x44]
inc edi
add esi, 4
cmp edi, eax
jl 0x4ad9cc
jmp 0x4ad9fa
cmp edi, dword [esp + 0x44]
jl 0x4adc0a
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jne 0x4ada33
test eax, eax
jne 0x4ada11
mov eax, 0x10
jmp 0x4ada13
shl eax, 1
mov ecx, dword [esp + 0x48]
push 0x90
push eax
push ecx
mov dword [esp + 0x88], eax
call fcn.004c6610
add esp, 0xc
mov dword [esp + 0x48], eax
jmp 0x4ada37
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x94]
xor esi, esi
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], esi
fild qword [esp + 0x9c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xa8], esi
fmul qword [esp + 0xbc]
fadd qword [esp + 0x8c]
fstp qword [ecx + eax]
mov edx, dword [esp + 0x98]
mov dword [esp + 0xa4], edx
fild qword [esp + 0xa4]
fmul qword [esp + 0xb4]
fadd qword [esp + 0x5c]
fstp qword [ecx + eax + 8]
cmp dword [esp + 0x44], esi
jle 0x4adaf5
mov eax, ecx
mov ecx, dword [esp + 0x48]
lea edi, [esp + 0x148]
lea ebx, [eax + ecx + 0x10]
mov edx, dword [edi]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], edx
fild qword [esp + 0xac]
fmul qword [esp + esi*8 + 0x2c8]
fadd qword [esp + esi*8 + 0x1c8]
fmul qword [0x5944d8]
call fcn.00502d0c
mov dword [ebx], eax
mov eax, dword [esp + 0x44]
inc esi
add edi, 4
add ebx, 4
cmp esi, eax
jl 0x4adaac
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
inc esi
add edx, 0x90
inc ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], edx
call fcn.004d4950
cmp dword [ebp + 8], 4
jne 0x4ad980
mov esi, dword [esp + 0x54]
test esi, esi
je 0x4adc00
mov edi, 1
cmp esi, edi
je 0x4adc00
cmp esi, 2
je 0x4adb57
mov eax, dword [esp + 0x78]
test eax, eax
ja 0x4adb57
mov dword [esp + 0x54], edi
jmp 0x4ad958
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
jne 0x4adb8d
test eax, eax
jne 0x4adb6e
mov eax, 0x10
jmp 0x4adb70
shl eax, 1
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
lea eax, [eax + eax*2]
push 4
push eax
push ecx
call fcn.004c6610
add esp, 0xc
mov dword [esp + 0x28], eax
jmp 0x4adb91
mov eax, dword [esp + 0x28]
cmp esi, 2
jne 0x4adbb5
mov edx, dword [esp + 0x40]
mov dword [esp + 0x54], 3
lea ecx, [edx - 1]
lea esi, [ecx - 1]
mov dword [ebx + eax], esi
mov dword [ebx + eax + 4], ecx
mov dword [ebx + eax + 8], edx
jmp 0x4adbeb
cmp dword [esp + 0x78], edi
jne 0x4adbd4
mov edx, dword [ebx + eax - 8]
mov dword [ebx + eax], edx
mov ecx, dword [ebx + eax - 4]
mov edx, dword [esp + 0x40]
mov dword [ebx + eax + 4], ecx
mov dword [ebx + eax + 8], edx
jmp 0x4adbeb
mov ecx, dword [ebx + eax - 0xc]
mov dword [ebx + eax], ecx
mov edx, dword [ebx + eax - 4]
mov ecx, dword [esp + 0x40]
mov dword [ebx + eax + 4], edx
mov dword [ebx + eax + 8], ecx
mov ecx, dword [esp + 0x34]
inc ecx
add ebx, 0xc
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], ebx
jmp 0x4ad958
inc esi
mov dword [esp + 0x54], esi
jmp 0x4ad958
mov esi, dword [esp + 0x38]
test esi, esi
je 0x4adc22
mov ecx, esi
call fcn.004ad1a0
push esi
call fcn.0055d27b
add esp, 4
cmp dword [ebp + 8], 5
jne 0x4adcce
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
cdq
idiv ecx
dec ecx
push 4
mov edi, eax
lea ebx, [edi + edi - 2]
imul ebx, ecx
mov dword [esp + 0x38], ebx
lea edx, [ebx + ebx*2]
push edx
call fcn.004c6580
mov dword [esp + 0x30], eax
lea eax, [edi - 1]
add esp, 8
xor esi, esi
test eax, eax
jle 0x4adcd2
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], 1
mov dword [esp + 0xc], eax
lea edi, [ecx - 1]
test edi, edi
jle 0x4adcb3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea edx, [esi + esi*2]
mov ebx, edi
lea eax, [eax + edx*4]
lea edx, [ecx - 1]
inc esi
mov dword [eax], edx
lea edx, [edi + ecx]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
add eax, 0xc
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x3c]
add eax, 0xc
add edx, ecx
inc esi
mov dword [eax - 4], edx
inc ecx
dec ebx
jne 0x4adc87
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0xc]
dec eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], eax
jne 0x4adc73
jmp 0x4adcd2
mov ebx, dword [esp + 0x34]
push 0x158
call fcn.0055d252
add esp, 4
test eax, eax
je 0x4add0f
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0xc8]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x54]
push ebx
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [ebp + 8]
push ecx
push edx
mov ecx, eax
call fcn.004ad270
mov esi, eax
jmp 0x4add11
xor esi, esi
mov eax, dword [ebp + 0xc]
mov ecx, esi
push eax
call fcn.004ab700
test eax, eax
jne 0x4add43
test esi, esi
je 0x4add87
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
xor eax, eax
mov ecx, dword [esp + 0x4c8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, esi
mov ecx, dword [esp + 0x4c8]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x5ca3b4
jmp 0x4add74
push 0x5ca37c
jmp 0x4add74
push 0x5ca340
jmp 0x4add74
push 0x5ca304
push 0xffffffffffffffff
call fcn.004cda10
add esp, 8
lea ecx, [esp + 0x18]
call fcn.004b24e0
mov ecx, dword [esp + 0x4c8]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret