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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x717127
push eax
mov eax, dword [0x7b92a0]
mov dword fs:[0], esp
sub esp, 0xf4
push edi
xor edi, edi
cmp eax, edi
jne 0x47709d
mov eax, dword [esp + 0x108]
push eax
call fcn.0046f900
add esp, 4
pop edi
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
add esp, 0x100
ret
mov ecx, dword [0x73f274]
mov edx, dword [0x73f270]
push ecx
push edx
call dword [0x73d38c]
cmp dword [0x78e670], edi
je 0x477812
cmp dword [0x78e614], edi
je 0x477812
mov eax, dword [0x7b92a0]
mov ecx, dword [eax + 0x80]
call fcn.004a28a0
push eax
lea ecx, [esp + 0x50]
call fcn.0046d250
cmp dword [esp + 0x50], edi
mov dword [esp + 0x100], edi
jne 0x477136
mov ecx, dword [esp + 0x108]
push ecx
call fcn.0046f900
mov eax, dword [esp + 0x50]
add esp, 4
cmp eax, edi
mov dword [esp + 0x100], 0xffffffff
je 0x477812
push eax
call fcn.006fa390
add esp, 4
pop edi
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
add esp, 0x100
ret
mov edx, dword [0x78d44c]
push ebx
push esi
push edx
call dword [0x73d37c]
mov ecx, dword [0x78d44c]
mov esi, dword [0x73d22c]
movzx eax, al
push ecx
mov dword [esp + 0x64], eax
call esi
call fcn.0046eda0
test eax, eax
mov ebx, dword [esp + 0x54]
je 0x4777f8
cmp dword [0x78e62c], edi
je 0x4777f8
push edi
push edi
push edi
push edi
push 0xd
call dword [0x7a47e0]
mov eax, dword [0x78e5ec]
add esp, 0x14
cmp eax, edi
je 0x477197
push 0x8620
jmp 0x47719e
mov edx, dword [0x78d46c]
push edx
call esi
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
push ebp
call dword [edx + 0x2c]
mov ebp, eax
test ebp, ebp
je 0x4771b9
mov edi, dword [ebp + 4]
test byte [0x8301dc], 1
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
jne 0x477242
or dword [0x8301dc], 1
push 0x201c
mov byte [esp + 0x110], 1
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x10c], 2
je 0x477233
mov ecx, dword [0x830294]
push ecx
push str.__ARBvp1.0PARAM_mvMatrix_4____state.matrix.modelview_0____nPARAM_mvpMatrix_4____state.matrix.mvp___nTEMP_vReg10__vLength__vTemp__nTEMP_vReg0__vReg1__vReg2__vReg3__nALIAS_vNormalWorld__vLength__nALIAS_vFinalColour__vTemp__nDP4___result.position.x__mvpMatrix_0___vertex.position__nDP4___result.position.y__mvpMatrix_1___vertex.position__nDP4___result.position.z__mvpMatrix_2___vertex.position__nDP4___result.position.w__mvpMatrix_3___vertex.position__nSUB__vReg10__program.env_12___vertex.position__nDP3___vReg10.w__vReg10__vReg10__nRSQ___vLength.w__vReg10.w__nDST_vTemp__vReg10.wwww__vLength.wwww__nDP3_vTemp.w__vTemp__program.env_14___nRCP_vTemp.w__vTemp.w__nMOV___result.color.secondary__vTemp.wwww__nMUL___vReg10__vReg10__vLength.w__nMOV___result.texcoord_2___vReg10__nMOV___result.texcoord_2_.w__1__nSUB_vTemp__program.env_13___vertex.position__nDP3___vTemp.w__vTemp__vTemp__nRSQ___vTemp.w__vTemp.w__nMUL___vTemp__vTemp__vTemp.w__nADD_vTemp__vTemp_vReg10__nMOV___result.texcoord_3___vTemp__nMOV___result.texcoord_3_.w__1__nDP4___vReg10.x__mvMatrix_0___vertex.position__nDP4___vReg10.y__mvMatrix_1___vertex.position__nDP4___vReg10.z__mvMatrix_2___vertex.position__nDP4___vReg10.w__mvMatrix_3___vertex.position__nDP3___vNormalWorld.x__mvMatrix_0___vertex.normal__nDP3___vNormalWorld.y__mvMatrix_1___vertex.normal__nDP3___vNormalWorld.z__mvMatrix_2___vertex.normal__nDP3_tvTemp.x__vReg10__vReg10__nRSQ_tvTemp.x__vTemp.x__nRCP_tvTemp.x__vTemp.x__nMOV_result.fogcoord__vTemp.x__nMOV___result.texcoord_0___vertex.texcoord_0___nMOV___result.texcoord_1___vertex.texcoord_1___n
mov ecx, eax
call fcn.004a27d0
jmp 0x477235
xor eax, eax
mov dword [0x8301d8], eax
mov byte [esp + 0x10c], 0
mov eax, dword [0x78e5ec]
test eax, eax
je 0x477252
push 0x8620
jmp 0x477259
mov edx, dword [0x78d46c]
push edx
call dword [0x73d390]
test edi, edi
je 0x4772a1
mov ecx, dword [ebp + 0x44]
lea eax, [esp + 0xc0]
push eax
call fcn.00471430
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
add edi, 0x8c
mov dword [esp + 0x34], ecx
mov ecx, dword [edi]
mov dword [esp + 0x38], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov ecx, dword [0x7b92a0]
mov eax, dword [ecx + 0xa4]
mov ecx, dword [ebp + 0x44]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx]
push eax
push eax
push edx
push ecx
push 7
call dword [0x7a47e0]
mov eax, dword [0x7b92a0]
mov ecx, dword [eax + 0x60]
add esp, 0x14
test ecx, ecx
mov dword [esp + 0x10], 0x3f800000
jne 0x4772e0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 0x68]
push 0x3f000000
push edx
mov edx, dword [eax + 0x64]
push ecx
push edx
push 0x10
call fcn.0044f820
push 0
push 0
push 0xbf800000
push 0x3f800000
push 0x11
call fcn.0044f820
add esp, 0x28
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x44]
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov eax, dword [ebp]
push edx
mov ecx, ebp
call dword [eax + 0xc]
mov ecx, dword [0x7bb4e8]
lea eax, [esp + 0x40]
push eax
add ecx, 0x7c
push ecx
lea edx, [esp + 0xc8]
push edx
call fcn.00423bc0
add esp, 0xc
push eax
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0xe0]
push ecx
call fcn.004a9b50
add esp, 8
push eax
lea edx, [esp + 0x98]
push edx
call fcn.004a9bb0
mov eax, dword [esp + 0x68]
add esp, 0xc
xor edi, edi
test eax, eax
jle 0x477702
nop
mov eax, dword [0x7b92a0]
mov ecx, dword [eax + 0x80]
mov edx, dword [ecx]
call dword [edx + 0x2c]
mov ecx, dword [0x8301d8]
push 1
push ebp
call fcn.004a24d0
mov eax, dword [ebx + edi*4]
add eax, 0x94
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
fld dword [esp + 0x24]
fsub dword [esp + 0x48]
mov dword [esp + 0x20], edx
fld dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
fsub dword [esp + 0x44]
lea ecx, [esp + 0x78]
fld dword [esp + 0x1c]
push ecx
fsub dword [esp + 0x44]
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0xfc]
fstp dword [esp + 0x80]
push eax
fstp dword [esp + 0x88]
fstp dword [esp + 0x8c]
call fcn.004a9b50
add esp, 8
push eax
lea ecx, [esp + 0xf0]
push ecx
call fcn.004a9bb0
fld dword [esp + 0x3c]
fmul dword [0x78e648]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov esi, dword [ebx + edi*4]
fstp dword [esp + 0x24]
mov dword [esp + 0x28], edx
fld dword [esp + 0x38]
mov edx, dword [eax + 8]
fmul dword [0x78e648]
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x10]
fstp dword [esp + 0x20]
mov dword [esp + 0x30], edx
fld dword [esp + 0x34]
mov edx, dword [ecx]
fmul dword [0x78e648]
add esp, 0xc
add esi, 0x4c
fstp dword [esp + 0xcc]
call dword [edx + 0x84]
fstp dword [esp + 0x10]
lea eax, [esp + 0xb4]
fld dword [esp + 0x18]
push eax
fmul dword [esp + 0x14]
lea ecx, [esp + 0x50]
fld dword [esp + 0x18]
push esi
fmul dword [esp + 0x18]
push ecx
fld dword [esp + 0xd8]
fmul dword [esp + 0x1c]
fstp dword [esp + 0xc0]
fstp dword [esp + 0xc4]
fstp dword [esp + 0xc8]
call fcn.004ab1e0
mov eax, dword [0x798b48]
add esp, 0xc
test eax, eax
push 0x3f800000
je 0x4774f6
lea edx, [esp + 0x50]
push edx
jmp 0x47751f
lea eax, [esp + 0xac]
mov dword [esp + 0xac], 0x3f800000
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
push eax
call dword [0x7a47dc]
fld dword [esp + 0x44]
fmul dword [0x78e630]
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ecx]
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x38]
fmul dword [0x78e630]
fstp dword [esp + 0x18]
fld dword [esp + 0x34]
fmul dword [0x78e630]
fstp dword [esp + 0xc0]
call dword [edx + 0x80]
fstp dword [esp + 0x10]
lea eax, [esp + 0x9c]
fld dword [esp + 0x14]
push eax
fmul dword [esp + 0x14]
lea edx, [esp + 0xdc]
fld dword [esp + 0x1c]
fmul dword [esp + 0x14]
fld dword [esp + 0xc4]
fmul dword [esp + 0x14]
fstp dword [esp + 0xa0]
fstp dword [esp + 0xa4]
fstp dword [esp + 0xa8]
mov ecx, dword [ebx + edi*4]
add ecx, 0x4c
push ecx
push edx
call fcn.004ab1e0
mov ecx, dword [eax]
mov dword [esp + 0x58], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x5c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
mov eax, dword [0x798b4c]
add esp, 0xc
test eax, eax
push 0x3f800000
je 0x4775df
lea ecx, [esp + 0x50]
push ecx
jmp 0x477608
lea edx, [esp + 0x88]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0x3f800000
mov dword [esp + 0x90], 0
push edx
call dword [0x7a6820]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
add esp, 8
push 0x3f800000
push eax
push ecx
push edx
push 0xc
call fcn.0044f820
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
push 0x3f800000
push eax
push ecx
push edx
push 0xd
call fcn.0044f820
mov eax, dword [ebx + edi*4]
fld dword [eax + 0x58]
add esp, 0x28
fld st(0)
push 0x3f800000
fmul st(1)
push ecx
fadd st(0), st(0)
fdivr dword [0x742f00]
fstp dword [esp]
push 0
push 0x3f800000
push 0xe
fstp st(0)
call fcn.0044f820
push 1
call fcn.00425250
mov ecx, dword [0x73f398]
add esp, 0x18
push ecx
call dword [0x73d260]
push 0
call fcn.00425250
mov edx, dword [esp + 0x118]
push edx
call fcn.0046f900
push 1
call fcn.00425250
mov eax, dword [0x73f398]
add esp, 0xc
push eax
call dword [0x73d264]
push 0
call fcn.00425250
mov eax, dword [esp + 0x68]
add esp, 4
test eax, eax
je 0x4776de
mov ecx, dword [0x78d44c]
push ecx
call dword [0x73d390]
mov edx, dword [0x7b92a0]
mov ecx, dword [edx + 0x80]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov eax, dword [esp + 0x5c]
inc edi
cmp edi, eax
jl 0x4773b0
mov esi, dword [0x73d22c]
mov ecx, dword [0x7b92a0]
mov edx, dword [ecx]
call dword [edx + 0x124]
push 0
push 0
push 0
push 0
push 0xd
call dword [0x7a47e0]
mov eax, dword [0x78e5ec]
add esp, 0x14
test eax, eax
pop ebp
je 0x477734
push 0x8620
jmp 0x47773a
mov eax, dword [0x78d46c]
push eax
call esi
mov eax, dword [0x828000]
test eax, eax
je 0x4777f8
push 0xb50
call esi
push 0xde1
call esi
push 0xb71
call esi
push 0x40a00000
call dword [0x73d380]
push 1
call dword [0x73d2d0]
mov edi, dword [0x73d2ec]
push 0
push 0
push 0x3f800000
call edi
mov esi, dword [0x73d2c8]
push 0
push 0
push 0
call esi
push 0
push 0
push 0x40a00000
call esi
push 0
push 0x3f800000
push 0
call edi
push 0
push 0
push 0
call esi
push 0
push 0x40a00000
push 0
call esi
push 0x3f800000
push 0
push 0
call edi
push 0
push 0
push 0
call esi
push 0x40a00000
push 0
push 0
call esi
call dword [0x73d2c4]
mov esi, dword [0x73d390]
push 0xb71
call esi
push 0xb50
call esi
push 0xde1
call esi
test ebx, ebx
mov dword [esp + 0x108], 0xffffffff
je 0x477810
push ebx
call fcn.006fa390
add esp, 4
pop esi
pop ebx
mov ecx, dword [esp + 0xf8]
pop edi
mov dword fs:[0], ecx
add esp, 0x100
ret