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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6527bb
mov eax, dword fs:[0]
push eax
sub esp, 0x140
push ebx
push esi
push edi
mov eax, dword [0x6af168]
xor eax, esp
push eax
lea eax, [esp + 0x150]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 8]
push eax
call fcn.004cdde0
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], 0
add ebx, 0x22c
xor esi, esi
mov dword [esp + 0x18], esi
mov edi, dword [ebx + 4]
test edi, edi
jne 0x4ad6eb
xor eax, eax
jmp 0x4ad700
mov ecx, dword [ebx + 8]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge 0x4ad746
test edi, edi
je 0x4ad721
mov ecx, dword [ebx + 8]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4ad726
call fcn.0062492b
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x18]
cmp byte [edx + ecx + 4], 0
je 0x4ad73c
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x38], esi
add esi, 1
add dword [esp + 0x18], 0xc
jmp 0x4ad6e0
mov eax, dword [esp + 0x1c]
add eax, 1
add ebx, 0x10
cmp eax, 2
mov dword [esp + 0x1c], eax
jl 0x4ad6da
mov edi, dword [esp + 0x14]
lea ecx, [edi + 0x200]
add edi, 0x230
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edi
xor esi, esi
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x2c], esi
je 0x4ad79a
mov ecx, dword [edi + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge 0x4adc71
mov eax, dword [edi]
test eax, eax
je 0x4ad7c1
mov ecx, dword [edi + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4ad7c6
call fcn.0062492b
mov eax, dword [edi]
lea edx, [esi + esi*2]
mov ebx, dword [eax + edx*4]
cmp byte [ebx + 0x54], 0
lea eax, [eax + edx*4]
mov dword [esp + 0x28], eax
je 0x4adc69
mov ecx, dword [ebp + 8]
push ecx
lea edi, [esp + 0x78]
call fcn.00524f50
mov edx, dword [esp + 0x14]
mov dword [esp + 0x158], 0
fld1
fcomp dword [edx + 0x228]
fnstsw ax
test ah, 0x41
jne 0x4ad80e
mov cl, 1
jmp 0x4ad810
xor cl, cl
lea eax, [esp + 0x74]
call fcn.005252b0
fld dword [edx + 0x228]
fmul qword [0x686838]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0x100]
call fcn.005029f0
push eax
lea ecx, [esp + 0x78]
call fcn.00525260
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x38]
mov esi, dword [ebx + 0x34]
mov edi, dword [ebx + 0x30]
push ecx
push eax
push esi
mov dword [esp + 0x4c], eax
push edi
lea eax, [esp + 0x84]
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ecx
call fcn.00526c20
mov eax, dword [esp + 0x2c]
cmp eax, 0xb
jne 0x4ad942
cmp byte [ebx + 0x59], 0
jne 0x4ad897
mov edx, dword [esp + 0x28]
cmp byte [edx + 4], 0
jne 0x4ad897
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1b8]
jmp 0x4ad89d
mov ecx, dword [0x6b8abc]
mov edx, dword [esp + 0x28]
cmp byte [edx + 4], 0
jne 0x4ad92e
fldz
fcomp qword [ebx + 0x108]
fnstsw ax
test ah, 5
jp 0x4ad92e
fld qword [0x665830]
fcomp qword [ebx + 0x108]
fnstsw ax
test ah, 0x41
jne 0x4ad92e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1b8]
push esi
push edi
push ecx
lea ecx, [esp + 0x80]
call fcn.00525c50
mov cl, 1
lea eax, [esp + 0x74]
call fcn.005252b0
fld qword [ebx + 0x108]
fmul qword [0x686838]
mov edx, dword [esp + 0x14]
fmul dword [edx + 0x228]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0xf0]
call fcn.005029f0
push eax
lea ecx, [esp + 0x78]
call fcn.00525260
mov ecx, dword [0x6b8abc]
push esi
push edi
push ecx
lea ecx, [esp + 0x80]
call fcn.00525c50
jmp 0x4adb91
cmp byte [ebx + 0x59], 0
jne 0x4ad974
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 4], 0
jne 0x4ad974
cmp byte [ebx + 0x56], 0
mov edx, dword [esp + 0x14]
je 0x4ad968
mov ecx, dword [edx + 0x1b4]
mov dword [esp + 0x18], ecx
jmp 0x4ad97e
mov ecx, dword [edx + 0x1b0]
mov dword [esp + 0x18], ecx
jmp 0x4ad97e
mov edx, dword [0x6b8474]
mov dword [esp + 0x18], edx
call fcn.00426860
mov ecx, dword [esp + 0x18]
push eax
lea esi, [esp + 0x68]
call fcn.00527e80
mov eax, dword [esp + 0x28]
cmp byte [eax + 4], 0
jne 0x4ada34
fldz
fcomp qword [ebx + 0x108]
fnstsw ax
test ah, 5
jp 0x4ada34
fld qword [0x665830]
fcomp qword [ebx + 0x108]
fnstsw ax
test ah, 0x41
jne 0x4ada34
cmp dword [esp + 0x1c], 1
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x1b0]
sete cl
push ecx
push edx
push edi
push eax
lea eax, [esp + 0x74]
lea ecx, [esp + 0x84]
call fcn.00525fd0
mov cl, 1
lea eax, [esp + 0x74]
call fcn.005252b0
fld qword [ebx + 0x108]
fmul qword [0x686838]
fmul dword [esi + 0x228]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0x140]
call fcn.005029f0
push eax
lea ecx, [esp + 0x78]
call fcn.00525260
mov eax, dword [0x6b8474]
jmp 0x4ada3c
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x1c], 1
mov edx, dword [esp + 0x24]
sete cl
push ecx
push edx
push edi
push eax
lea eax, [esp + 0x74]
lea ecx, [esp + 0x84]
call fcn.00525fd0
cmp byte [ebx + 0x56], 0
je 0x4adac9
fld dword [esi + 0x228]
fmul qword [0x687288]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0x110]
call fcn.005029f0
mov ebx, dword [ebp + 8]
push eax
mov ecx, ebx
call fcn.00525260
mov cl, 1
mov eax, ebx
call fcn.005252b0
mov eax, dword [esp + 0x24]
mov ecx, dword [0x6b861c]
push eax
push edi
push ecx
mov ecx, ebx
call fcn.00525c50
fld1
fcomp dword [esi + 0x228]
fnstsw ax
test ah, 0x41
jne 0x4adac0
mov cl, 1
jmp 0x4adac2
xor cl, cl
mov eax, ebx
call fcn.005252b0
cmp byte [esi + 0x219], 0
je 0x4adb8d
mov edx, dword [esp + 0x1c]
cmp dword [esp + edx*4 + 0x38], 0xb
jne 0x4adb8d
mov eax, dword [esp + 0x34]
fld dword [eax]
fmul qword [0x686838]
call fcn.0062a660
test eax, eax
mov dword [esp + 0x18], eax
jle 0x4adb8d
fild dword [esp + 0x18]
mov esi, dword [esp + 0x14]
fmul dword [esi + 0x228]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0x130]
call fcn.005029f0
push eax
lea ecx, [esp + 0x78]
call fcn.00525260
mov cl, 1
lea eax, [esp + 0x74]
call fcn.005252b0
mov ecx, dword [0x6b8994]
mov eax, dword [esp + 0x20]
sub eax, dword [ecx + 0x28]
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x44]
sub eax, dword [ecx + 0x24]
cdq
sub eax, edx
sar eax, 1
add eax, edi
push eax
push ecx
lea ecx, [esp + 0x80]
call fcn.00525c50
fld1
fcomp dword [esi + 0x228]
fnstsw ax
test ah, 0x41
jne 0x4adb82
mov cl, 1
jmp 0x4adb84
xor cl, cl
lea eax, [esp + 0x74]
call fcn.005252b0
mov esi, dword [esp + 0x24]
fld1
mov ebx, dword [esp + 0x14]
fcom dword [ebx + 0x228]
fnstsw ax
test ah, 0x41
jne 0x4adba8
mov cl, 1
jmp 0x4adbaa
xor cl, cl
lea eax, [esp + 0x74]
call fcn.005252b0
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 4], 0
jne 0x4adc4b
fld dword [ebx + 0x228]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
fmul qword [0x686838]
add edx, 0xe
add eax, 0xe
add edi, 0xfffffff8
add esi, 0xfffffff8
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0xe0]
call fcn.005029f0
mov esi, dword [ebp + 8]
push eax
mov ecx, esi
call fcn.00525260
fcomp dword [ebx + 0x228]
fnstsw ax
test ah, 0x41
jne 0x4adc24
mov cl, 1
jmp 0x4adc26
xor cl, cl
mov eax, esi
call fcn.005252b0
mov eax, dword [0x6b86b4]
push esi
lea esi, [esp + 0x58]
call fcn.00526d10
mov ecx, dword [ebp + 8]
push 0x6bac38
call fcn.00525260
jmp 0x4adc4d
fstp st(0)
lea ecx, [esp + 0x74]
mov dword [esp + 0x158], 0xffffffff
call fcn.005250b0
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
add esi, 1
jmp 0x4ad77b
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + ecx*4 + 0x38]
cmp ebx, 0xffffffff
je 0x4add37
mov eax, dword [edi]
test eax, eax
je 0x4adca1
mov ecx, dword [edi + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4adca6
call fcn.0062492b
mov eax, dword [edi]
fld1
lea edx, [ebx + ebx*2]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x34]
mov ecx, dword [eax + 0x30]
sub edx, 8
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x3c]
add edx, 0xe
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x14]
fcomp dword [edx + 0x228]
sub ecx, 8
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x38]
add ecx, 0xe
fnstsw ax
mov dword [esp + 0x4c], ecx
test ah, 0x41
jne 0x4adced
mov cl, 1
jmp 0x4adcef
xor cl, cl
mov esi, dword [ebp + 8]
mov eax, esi
call fcn.005252b0
fld dword [edx + 0x228]
fmul qword [0x686838]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0x120]
call fcn.005029f0
push eax
mov ecx, esi
call fcn.00525260
mov eax, dword [0x6b8688]
push esi
lea esi, [esp + 0x48]
call fcn.00526d10
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x219], 0
je 0x4add6d
mov eax, dword [esp + 0x1c]
add dword [esp + 0x34], 4
add eax, 1
add edi, 0x10
cmp eax, 2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], edi
jl 0x4ad779
cmp byte [esi + 0x219], 0
jne 0x4add97
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x38]
push edi
mov edx, esi
call fcn.004acfa0
mov ecx, dword [esi + 0x3c]
mov eax, dword [0x6b87e0]
sub ecx, dword [eax + 0x28]
sub ecx, 6
push ecx
push 0xb9
mov ecx, edi
jmp 0x4ade7d
mov edx, dword [esi + 0x19c]
cmp byte [edx + 0x90], 0
je 0x4adde3
mov eax, edx
mov ebx, dword [eax + 0x30]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x34]
mov eax, dword [0x6b87d8]
add ebx, 8
lea edi, [ecx + edx - 0xf]
mov dword [esp + 0x20], 3
mov ecx, dword [ebp + 8]
push edi
push ebx
push eax
call fcn.00525c50
sub dword [esp + 0x20], 1
mov eax, dword [0x6b87d8]
mov ecx, dword [eax + 0x28]
lea edi, [edi + ecx - 0xf]
jne 0x4addc5
cmp dword [esi + 0x18c], 0
je 0x4ade66
mov edi, dword [ebp + 8]
mov ecx, dword [0x6b88b4]
mov eax, edi
call fcn.00525250
fld dword [esi + 0x228]
fmul qword [0x686838]
call fcn.0062a660
push eax
mov ecx, 0xffffff
lea eax, [esp + 0xe0]
call fcn.005029f0
push eax
mov ecx, edi
call fcn.00525260
lea ebx, [esi + 0x1c0]
lea edi, [esi + 0x1f8]
mov dword [esp + 0x20], 2
nop
mov edx, dword [esi + 0x190]
mov eax, dword [edx + 0x34]
mov ecx, dword [edi]
add eax, 0x28
push eax
push ecx
mov ecx, dword [ebp + 8]
push ebx
call fcn.00525c20
add edi, 4
add ebx, 0x1c
sub dword [esp + 0x20], 1
jne 0x4ade40
mov edx, dword [esi + 0x3c]
mov eax, dword [0x6b88f0]
sub edx, dword [eax + 0x28]
mov ecx, dword [ebp + 8]
sub edx, 6
push edx
push 0xac
push eax
call fcn.00525c50
mov ecx, dword [esp + 0x150]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4