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

Disassembly:
sub esp, 0xb0
mov ecx, dword [0x4b3c98]
mov eax, dword [0x4b3c90]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x70], ecx
mov ecx, 0xd
lea esi, [esp + 0xc4]
mov edi, 0x1cf35e4
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xd
lea esi, [esp + 0xc4]
mov edi, 0x1cf35a0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xfc]
mov edx, dword [0x1cf2da8]
rep movsd dword es:[edi], dword [esi]
movsx ecx, al
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x80], ecx
mov dword [0x1cf358c], ecx
mov cl, byte [0x1cf2c82]
mov byte [0x1cf3588], cl
mov cl, byte [0xf322e8]
mov dword [esp + 0x94], edx
mov dl, byte [0x1cf2c83]
xor ebp, ebp
mov dword [esp + 0x50], 0
test cl, cl
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov byte [esp + 0x14], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x13], 0
mov dword [esp + 0x5c], ebp
mov byte [0x1cf3618], bl
mov byte [0x1cf3619], al
mov byte [0x1cf35d4], bl
mov byte [0x1d725e4], dl
jne 0x41dc60
mov ecx, dword [0x1cf2c7c]
cmp ecx, 1
je 0x41dc43
cmp ecx, 2
jne 0x41dc60
push eax
push ebx
sub esp, 0x34
mov ecx, 0xd
lea esi, [esp + 0x100]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00455ba0
add esp, 0x3c
or edx, 0xffffffff
mov dword [0x4b3c90], 0x1f4
test bl, bl
mov dword [0x4b3c94], 0x3b03126f
mov dword [0x4b3c98], 0x3f800000
mov dword [0x1cf2da8], 0x3b03126f
je 0x41dc94
mov byte [esp + 0x14], 0xff
fld dword [esp + 0xc8]
fcomp dword [0x4772e0]
mov byte [esp + 0x16], 0xff
fnstsw ax
test ah, 1
jne 0x41dcb2
mov byte [esp + 0x16], 1
mov ecx, 0xa
mov eax, edx
mov edi, 0x1cf3620
mov dword [0x1cf35e0], ebp
mov dword [0x1cf361c], edx
rep stosd dword es:[edi], eax
xor eax, eax
xor ecx, ecx
mov dword [0x1cf3662], eax
mov dword [0x1cf366c], ecx
cmp bl, 2
mov dword [0x1cf3648], edx
mov dword [0x1cf364c], edx
mov dword [0x1cf3650], edx
mov dword [0x1cf3654], edx
mov dword [0x1cf3658], edx
mov dword [0x1cf365c], edx
mov dword [0x1cf3666], eax
mov dword [0x1cf3670], ecx
mov word [0x1cf366a], ax
mov eax, dword [esp + 0xc4]
mov word [0x1cf3674], cx
sete dl
mov byte [0x1cf3676], cl
mov byte [0x1cf3679], cl
mov byte [0x1cf367a], cl
mov byte [0x1cf3677], cl
mov byte [0x1cf3678], cl
mov byte [0x1cf367b], dl
mov edx, dword [esp + 0xcc]
mov byte [0x1cf367c], cl
mov byte [0x1cf367d], cl
mov byte [0x1cf367e], cl
mov dword [0x1cf3680], ecx
mov dword [0x1cf3684], ecx
mov dword [0x1cf368c], ecx
mov dword [0x1cf3690], ecx
mov ecx, dword [esp + 0xc8]
mov dword [0x1cf3698], eax
mov dword [0x1cf369c], ecx
mov dword [0x1cf36a0], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xf0]
mov byte [0x1cf3660], 0
mov byte [0x1cf3661], 0
mov dword [0x1cf3688], 0x461c3c00
mov dword [0x1cf3694], 0x461c3c00
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
jmp 0x41de0a
mov ebx, dword [esp + 0xf8]
lea eax, [esp + 0x1c]
push eax
call fcn.004208d0
mov eax, dword [0x1cf2c7c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
add esp, 4
cmp eax, 7
jne 0x41dfb1
mov cl, byte [0x1cf367b]
test cl, cl
jne 0x41e136
test ebp, ebp
jbe 0x41e56b
fld dword [0x1cf28d8]
fchs
fstp dword [esp + 0x18]
fld dword [esp + 0x54]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
je 0x41e15c
fld dword [esp + 0x20]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x41e15c
fld dword [esp + 0x38]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 0x41
jne 0x41e15c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x9c]
mov dword [esp + 0x8c], eax
push ecx
push edx
push 1
mov ecx, dword [esp + 0x64]
sub esp, 0xc
mov eax, esp
sub esp, 0xc
mov edx, esp
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [edx], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.004201c0
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], edx
push ecx
mov dword [esp + 0x4c], eax
call fcn.0041f3a0
mov bl, al
add esp, 0x28
cmp bl, 1
mov byte [esp + 0x98], bl
je 0x41df7f
cmp bl, 2
je 0x41df7f
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x20], eax
mov al, byte [0x1cf3660]
mov dword [esp + 0x1c], edx
test al, al
mov dword [esp + 0x24], ecx
mov byte [0x1cf3677], 0
mov byte [0x1cf3678], bl
jne 0x41df75
mov byte [0x1cf3661], 1
mov byte [0x1cf3660], 1
mov dword [0x1cf361c], ebp
mov byte [esp + 0x13], 1
jmp 0x41e12c
mov edx, dword [esp + 0x98]
lea eax, [esp + 0x1c]
push edx
push eax
call fcn.0041f8e0
add esp, 8
mov byte [0x1cf3677], 1
mov byte [0x1cf3678], bl
mov dword [0x1cf3658], ebp
mov byte [esp + 0x14], 0
jmp 0x41e12c
test ebp, ebp
jbe 0x41e12c
mov al, byte [esp + 0x15]
test al, al
jne 0x41e12c
fld dword [esp + 0x54]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 0x41
jne 0x41dfe7
fld dword [esp + 0x20]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 0x41
jne 0x41e011
fld dword [esp + 0x54]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 1
je 0x41e12c
fld dword [esp + 0x20]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 1
jne 0x41e12c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp ebp, 1
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
jbe 0x41e08d
lea ecx, [esp + 0xb4]
mov eax, dword [esp + 0x58]
push ecx
push 0
push 1
sub esp, 0xc
mov edx, esp
sub esp, 0xc
mov ecx, esp
mov dword [edx], edi
mov dword [edx + 4], esi
mov dword [edx + 8], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [ecx], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
call fcn.004201c0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
add esp, 0x24
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call fcn.0041f0b0
add esp, 8
test al, al
jne 0x41e0ef
mov byte [0x1cf3676], al
mov al, byte [0x1cf3660]
test al, al
jne 0x41e0ce
neg bl
sbb bl, bl
mov byte [0x1cf3660], 1
and bl, 2
mov dword [0x1cf361c], ebp
add bl, 5
mov byte [0x1cf3661], bl
lea edx, [esp + 0x1c]
push 0
push edx
mov dword [0x1cf3650], ebp
mov byte [esp + 0x1d], 1
call fcn.0041f130
add esp, 8
mov byte [esp + 0x13], 1
jmp 0x41e12c
cmp al, 2
jne 0x41e114
mov byte [0x1cf3676], al
lea eax, [esp + 0x1c]
push 2
push eax
mov dword [0x1cf3650], ebp
mov byte [esp + 0x1d], 1
call fcn.0041f130
add esp, 8
jmp 0x41e12c
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov cl, byte [0x1cf367b]
test cl, cl
je 0x41e15c
fld dword [esp + 0x24]
fcomp dword [0x478090]
fnstsw ax
test ah, 0x41
jne 0x41e154
mov byte [esp + 0x13], 1
mov dword [esp + 0x5c], 0x177
test cl, cl
jne 0x41e584
test ebp, ebp
jbe 0x41e56b
fld dword [0x1cf28d8]
fchs
fstp dword [esp + 0x18]
fld dword [esp + 0x58]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
je 0x41e19f
fld dword [esp + 0x24]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x41e19f
fld dword [esp + 0x3c]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 0x41
je 0x41e1e4
fld dword [0x1cf2630]
fsub dword [0x1cf28d8]
fld dword [esp + 0x58]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x41e569
fld dword [esp + 0x24]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
je 0x41e56b
fld dword [esp + 0x3c]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 1
je 0x41e56b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xa8]
mov dword [esp + 0x6c], eax
push ecx
push edx
push 2
mov ecx, dword [esp + 0x64]
sub esp, 0xc
mov eax, esp
sub esp, 0xc
mov edx, esp
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [edx], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.004201c0
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x44], edx
push ecx
mov dword [esp + 0x4c], eax
call fcn.0041f2a0
mov bl, al
add esp, 0x28
cmp bl, 1
mov byte [esp + 0x90], bl
je 0x41e399
cmp bl, 2
je 0x41e399
cmp bl, 4
jne 0x41e2a5
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
jmp 0x41e55e
cmp bl, 3
jne 0x41e2c5
lea edx, [esp + 0x1c]
push 3
push edx
call fcn.0041f470
mov al, byte [esp + 0x1c]
add esp, 8
mov dword [0x1cf365c], ebp
jmp 0x41e2eb
mov al, byte [esp + 0x14]
test al, al
jne 0x41e2eb
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [0x1cf3648], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov cl, byte [esp + 0x17]
test cl, cl
jne 0x41e378
cmp al, 1
jge 0x41e384
test al, al
jge 0x41e322
mov al, byte [0x1cf3660]
mov byte [0x1cf3679], 0
test al, al
mov byte [0x1cf367a], bl
jne 0x41e33f
mov byte [0x1cf3661], 2
jmp 0x41e33f
mov al, byte [0x1cf3660]
mov byte [0x1cf3662], 0
test al, al
mov byte [0x1cf366c], bl
jne 0x41e33f
mov byte [0x1cf3661], 1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [0x1cf368c], edx
mov edx, dword [esp + 0x24]
test al, al
mov dword [0x1cf3690], ecx
mov dword [0x1cf3694], edx
jne 0x41e36e
mov byte [0x1cf3660], 1
mov dword [0x1cf361c], ebp
mov byte [esp + 0x17], 1
jmp 0x41e559
cmp al, 1
jl 0x41e55e
mov al, byte [esp + 0x14]
movsx eax, al
mov byte [eax + 0x1cf3662], 0
mov byte [eax + 0x1cf366c], bl
jmp 0x41e55e
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.0041f470
mov al, byte [esp + 0x100]
mov dl, byte [esp + 0x1c]
add esp, 8
test al, al
je 0x41e464
cmp dl, 0xff
jne 0x41e464
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [0x1cf3680], eax
mov eax, dword [esp + 0x24]
mov dword [0x1cf3688], eax
mov eax, dword [0x1cf2c7c]
cmp eax, 7
mov dword [0x1cf3684], ecx
mov byte [0x1cf367a], bl
mov dword [0x1cf364c], ebp
je 0x41e458
mov cl, byte [esp + 0x16]
test cl, cl
jge 0x41e417
fld dword [esp + 0x20]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 1
je 0x41e42a
test cl, cl
jle 0x41e458
fld dword [esp + 0x20]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 0x41
je 0x41e458
mov al, byte [0x1cf3660]
mov byte [esp + 0x13], 1
test al, al
jne 0x41e44c
mov byte [0x1cf3660], 1
mov dword [0x1cf361c], ebp
mov byte [0x1cf3661], 4
mov byte [0x1cf3679], 0
jmp 0x41e54e
mov byte [0x1cf3679], 1
jmp 0x41e54e
test dl, dl
jne 0x41e537
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [0x1cf3690], eax
mov eax, dword [0x1cf2c7c]
mov dword [0x1cf368c], ecx
mov ecx, dword [esp + 0x24]
cmp eax, 7
mov dword [0x1cf3694], ecx
je 0x41e4ec
mov cl, byte [esp + 0x16]
test cl, cl
jge 0x41e4ae
fld dword [esp + 0x20]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 0x41
jne 0x41e4c1
test cl, cl
jle 0x41e4ec
fld dword [esp + 0x20]
fcomp dword [0x4772e0]
fnstsw ax
test ah, 1
jne 0x41e4ec
mov al, byte [0x1cf3660]
mov byte [esp + 0x13], 1
test al, al
jne 0x41e4e3
mov byte [0x1cf3660], 1
mov dword [0x1cf361c], ebp
mov byte [0x1cf3661], 3
mov byte [0x1cf3662], 0
jmp 0x41e4f3
mov byte [0x1cf3662], 1
mov al, byte [esp + 0xf8]
mov byte [0x1cf366c], bl
test al, al
mov dword [0x1cf3620], ebp
je 0x41e54e
cmp byte [0x1cf3676], 2
jne 0x41e54e
mov al, byte [0x1cf3660]
mov byte [esp + 0x13], 1
test al, al
jne 0x41e54e
mov byte [0x1cf3660], 1
mov dword [0x1cf361c], ebp
mov byte [0x1cf3661], 6
jmp 0x41e54e
movsx eax, dl
mov byte [eax + 0x1cf3662], 1
mov byte [eax + 0x1cf366c], bl
mov dword [eax*4 + 0x1cf3620], ebp
inc dl
cmp dl, 4
mov byte [esp + 0x14], dl
jle 0x41e55e
mov byte [esp + 0x13], 1
mov al, byte [0x1cf367b]
test al, al
jne 0x41e584
jmp 0x41e56b
fstp st(0)
lea edx, [esp + 0x1c]
push edx
call fcn.0041f7f0
add esp, 4
test al, al
je 0x41e584
mov dword [0x1cf3654], ebp
jmp 0x41e59a
fld dword [esp + 0x24]
fcomp dword [0x1cf28f8]
fnstsw ax
test ah, 1
jne 0x41e59a
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x24]
lea eax, [ebp + ebp*2]
mov dword [esp + 0x54], ecx
lea esi, [esp + 0x1c]
mov dword [esp + 0x58], edx
lea ecx, [ebp + eax*4]
mov al, byte [esp + 0x13]
test al, al
lea edi, [ecx*4 + 0x1cf36a4]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
je 0x41e5f6
mov eax, dword [esp + 0x5c]
inc eax
cmp eax, 0x177
mov dword [esp + 0x5c], eax
jbe 0x41e5f6
mov dword [0x1cf35e0], ebp
mov byte [0x1cf367c], 1
mov ebp, 0x2710
inc ebp
cmp ebp, 0x2710
jb 0x41de03
mov eax, dword [0x1cf35e0]
xor esi, esi
cmp eax, esi
jne 0x41e62a
push str.Path_did_not_end
push str.BallPathSet
call fcn.00401170
add esp, 8
mov dword [0x1cf35e0], 0x7d0
fild dword [esp + 0x60]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x94]
mov dword [0x4b3c90], edx
fdivr dword [0x4772bc]
mov edx, dword [esp + 0x80]
mov dword [0x1cf2d48], esi
mov dword [0xdb147c], esi
mov dword [0xdb1480], esi
pop edi
pop esi
pop ebp
mov dword [0x4b3c98], eax
mov dword [0x1cf2da8], ecx
mov dword [0x4b3aa4], 0xffffffff
mov dword [0x4b3aa0], edx
pop ebx
fstp dword [0x4b3c94]
add esp, 0xb0
ret