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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x717017
push eax
mov eax, dword [0x7b92a0]
mov dword fs:[0], esp
sub esp, 0xbc
push edi
xor edi, edi
cmp eax, edi
jne 0x475489
mov eax, dword [esp + 0xd0]
push eax
call fcn.0046f900
jmp 0x475b88
mov ecx, dword [0x73f274]
mov edx, dword [0x73f270]
push ecx
push edx
call dword [0x73d38c]
mov eax, dword [0x7b92a0]
mov ecx, dword [eax + 0x80]
call fcn.004a28a0
push eax
lea ecx, [esp + 0x40]
call fcn.0046d250
cmp dword [esp + 0x40], edi
mov dword [esp + 0xc8], edi
jne 0x4754df
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.0046fa40
mov eax, dword [esp + 0x40]
add esp, 4
cmp eax, edi
jmp 0x475b75
mov edx, dword [0x78d44c]
push ebx
mov ebx, dword [0x73d37c]
push ebp
push edx
call ebx
mov eax, dword [0x78d44c]
mov ebp, dword [0x73d22c]
push eax
call ebp
call fcn.0046eda0
test eax, eax
je 0x475b6d
mov ecx, dword [esp + 0xd8]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx]
push esi
call dword [edx + 0x2c]
mov esi, eax
mov eax, dword [0x78d450]
push eax
call ebp
test esi, esi
je 0x47552c
mov edi, dword [esi + 4]
test byte [0x8301b4], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jne 0x4755b5
or dword [0x8301b4], 1
push 0x201c
mov byte [esp + 0xd8], 1
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x54], eax
test eax, eax
mov byte [esp + 0xd4], 2
je 0x4755a6
mov ecx, dword [0x830554]
push ecx
push str.__VP1.0__This_is_the_vertex_program_for_transforming_light_halfangle_vectors_into_tangent_space._nDP4___o_HPOS_.x__c_0___v_OPOS__DP4___o_HPOS_.y__c_1___v_OPOS__DP4___o_HPOS_.z__c_2___v_OPOS__DP4___o_HPOS_.w__c_3___v_OPOS__ADD__R0__c_12____v_OPOS__DP3___R0.w__R0__R0_RSQ___R1.w__R0.w_MUL___R0__R0__R1.w_DST_R2__R0.w__R1.w_DP3_R2.w__R2__c_14__RCP_R2.w__R2.w_MOV___R4.xyzw__R2.wwww_ADD_R2__c_13___v_OPOS__DP3___R2.w__R2__R2_RSQ___R2.w__R2.w_MUL___R2__R2__R2.w_MOV___R2.w__c_17_.x_ADD_R2__R2_R0_MOV___R2.w__c_17_.x_DP3___R1.x__v_TEX4___R2_DP3___R1.y__v_TEX5___R2_DP3___R1.z__v_TEX6___R2_MOV___R1.w__c_17_.x_MOV___o_TEX1___R1_DP4___R10.x__c_8___v_OPOS__DP4___R10.y__c_9___v_OPOS__DP4___R10.z__c_10___v_OPOS__DP4___R10.w__c_11___v_OPOS__DP3___R11.x__c_8___v_NRML__DP3___R11.y__c_9___v_NRML__DP3___R11.z__c_10___v_NRML__DP3___R1.w__R10__R10_RSQ___R1.w__R1.w_RCP___R1.w__R1.w_MOV___o_FOGC___R1.w_MOV___o_COL1___R4_MOV___R9__v_COL0__MOV___o_TEX0___v_TEX0__MOV___o_TEX2___v_TEX1__MOV___o_TEX3___v_TEX0__
mov ecx, eax
call fcn.004a27d0
jmp 0x4755a8
xor eax, eax
mov dword [0x8301b0], eax
mov byte [esp + 0xd4], 0
mov edx, dword [0x78d46c]
push edx
call dword [0x73d390]
test edi, edi
je 0x47569f
mov eax, dword [esi + 0x44]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
lea edx, [esp + 0x18]
push edx
call dword [eax + 0x88]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
add edi, 0x8c
mov eax, dword [edi]
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0x28], ecx
mov edx, dword [edi + 8]
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x30], edx
call fcn.004ab100
fstp dword [esp + 0x18]
mov eax, dword [0x78e5f4]
add esp, 4
test eax, eax
je 0x475644
mov ecx, dword [esi + 0x44]
call fcn.0047af50
test eax, eax
je 0x475644
lea ecx, [esp + 0x30]
push ecx
call fcn.004ab100
add esp, 4
jmp 0x47564a
fld dword [0x73d700]
fld dword [esp + 0x2c]
push ecx
fmul dword [esp + 0x18]
lea edx, [esp + 0x1c]
fld dword [esp + 0x2c]
lea eax, [esp + 0x98]
fmul dword [esp + 0x18]
fld dword [esp + 0x28]
fmul dword [esp + 0x18]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
fadd dword [esp + 0x18]
fstp dword [esp]
push edx
push eax
call fcn.00437a90
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov eax, dword [eax + 8]
add esp, 0xc
mov dword [esp + 0x2c], eax
mov ecx, dword [0x78d44c]
push ecx
call ebx
movzx edx, al
mov eax, dword [0x78d44c]
push eax
mov dword [esp + 0x58], edx
call ebp
push 1
call fcn.00425250
mov ecx, dword [0x73f398]
mov edi, dword [0x73d260]
add esp, 4
push ecx
call edi
mov edx, dword [0x73f3b8]
push edx
call edi
mov eax, dword [0x73f3bc]
push eax
call edi
mov ecx, dword [0x73f3c0]
push ecx
call edi
mov eax, dword [0x78e634]
cmp eax, 1
jne 0x475713
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [0x7b92a0]
mov edi, dword [edi + 0xa4]
mov eax, dword [eax + 0x10]
push ecx
push edx
push edi
push eax
push 9
jmp 0x47577d
cmp eax, 2
jne 0x475737
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [0x7b92a0]
mov edi, dword [edi + 0xa4]
mov eax, dword [eax + 0x10]
push ecx
push edx
push edi
push eax
push 0xa
jmp 0x47577d
cmp eax, 4
jne 0x47575b
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [0x7b92a0]
mov edi, dword [edi + 0xa4]
mov eax, dword [eax + 0x10]
push ecx
push edx
push edi
push eax
push 0xb
jmp 0x47577d
cmp eax, 8
jne 0x475786
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [0x7b92a0]
mov edi, dword [edi + 0xa4]
mov eax, dword [eax + 0x10]
push ecx
push edx
push edi
push eax
push 0xc
call dword [0x7a47e0]
add esp, 0x14
mov eax, dword [0x7b92a0]
mov ecx, dword [eax + 0x60]
test ecx, ecx
mov dword [esp + 0x10], 0x3f800000
jne 0x4757a2
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 + 0x6c]
push ecx
lea edx, [esp + 0x40]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov eax, dword [esi]
push edx
mov ecx, esi
call dword [eax + 0xc]
mov eax, dword [0x7bb4e8]
fld dword [eax + 0x84]
lea ecx, [esp + 0x6c]
fsub dword [esp + 0x44]
lea edx, [esp + 0xac]
fld dword [eax + 0x80]
fsub dword [esp + 0x40]
fld dword [eax + 0x7c]
lea eax, [esp + 0x18]
fsub dword [esp + 0x3c]
push eax
push ecx
push edx
fstp dword [esp + 0x24]
fstp dword [esp + 0x28]
fstp dword [esp + 0x2c]
call fcn.004a9b50
add esp, 8
push eax
lea eax, [esp + 0x60]
push eax
call fcn.004a9bb0
mov eax, dword [esp + 0x58]
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], 0
jle 0x475ab4
mov ecx, dword [0x8301b0]
push 1
push esi
call fcn.004a24d0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
add eax, 0x94
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
fld dword [esp + 0x20]
fsub dword [esp + 0x44]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
fsub dword [esp + 0x40]
lea ecx, [esp + 0x88]
fld dword [esp + 0x18]
push ecx
fsub dword [esp + 0x40]
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0xc4]
fstp dword [esp + 0x90]
push eax
fstp dword [esp + 0x98]
fstp dword [esp + 0x9c]
call fcn.004a9b50
add esp, 8
push eax
lea ecx, [esp + 0xb4]
push ecx
call fcn.004a9bb0
fld dword [esp + 0x44]
fmul dword [0x78e630]
mov edx, dword [esi + 0x44]
mov ecx, dword [edx + 0x10]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
fstp dword [esp + 0x74]
fld dword [esp + 0x40]
mov ebx, dword [eax + 8]
fmul dword [0x78e630]
mov eax, dword [ecx]
add esp, 0xc
fstp dword [esp + 0x64]
fld dword [esp + 0x30]
fmul dword [0x78e630]
fstp dword [esp + 0xa0]
call dword [eax + 0x80]
mov edx, dword [esp + 0x48]
fstp dword [esp + 0x10]
fld dword [esp + 0x68]
mov eax, dword [esp + 0x14]
fmul dword [esp + 0x10]
lea ecx, [esp + 0x7c]
fld dword [esp + 0x64]
push ecx
fmul dword [esp + 0x14]
fld dword [esp + 0xa4]
fmul dword [esp + 0x14]
fstp dword [esp + 0x80]
fstp dword [esp + 0x84]
fstp dword [esp + 0x88]
mov ecx, dword [edx + eax*4]
add ecx, 0x4c
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.004ab1e0
lea eax, [esp + 0xa0]
push 0x3f800000
push eax
call dword [0x7a6820]
mov eax, dword [0x78e5ec]
add esp, 0x14
push 0x3f800000
push ebx
push ebp
test eax, eax
push edi
push 0xc
push 0x8620
je 0x4759df
call dword [0x7bb850]
jmp 0x4759e5
call dword [0x7bb7ac]
mov eax, dword [0x78e5ec]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push 0x3f800000
push ecx
push edx
test eax, eax
mov eax, dword [esp + 0x64]
push eax
push 0xd
push 0x8620
je 0x475a11
call dword [0x7bb850]
jmp 0x475a17
call dword [0x7bb7ac]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x14]
mov edx, dword [ecx + edi*4]
fld dword [edx + 0x58]
mov eax, dword [0x78e5ec]
test eax, eax
fld st(0)
fmul st(1)
push 0x3f800000
fadd st(0), st(0)
fdivr dword [0x742f00]
fstp dword [esp + 0x14]
fstp st(0)
je 0x475a60
mov eax, dword [esp + 0x14]
push eax
push 0
push 0x3f800000
push 0xe
push 0x8620
call dword [0x7bb850]
jmp 0x475a79
mov ecx, dword [esp + 0x14]
push ecx
push 0
push 0x3f800000
push 0xe
push 0x8620
call dword [0x7bb7ac]
mov edx, dword [esp + 0xdc]
push edx
call fcn.0046f900
mov eax, dword [esp + 0x58]
add esp, 4
test eax, eax
je 0x475a9d
mov eax, dword [0x78d44c]
push eax
call dword [0x73d390]
mov eax, dword [esp + 0x4c]
inc edi
cmp edi, eax
mov dword [esp + 0x14], edi
jl 0x475884
mov ebp, dword [0x73d22c]
mov ecx, dword [0x73f3b4]
mov esi, dword [0x73d264]
push ecx
call esi
mov edx, dword [0x73f3b8]
push edx
call esi
mov eax, dword [0x73f3bc]
push eax
call esi
mov ecx, dword [0x73f3c0]
push ecx
call esi
call fcn.0045f710
test eax, eax
je 0x475af1
push 0x84c1
call dword [0x7bb6b0]
mov edx, dword [0x73f398]
push edx
mov dword [0x7a6898], 1
call esi
call fcn.0045f710
test eax, eax
pop esi
je 0x475b19
push 0x84c0
call dword [0x7bb6b0]
mov ecx, dword [0x7b92a0]
mov dword [0x7a6898], 0
mov eax, dword [ecx]
call dword [eax + 0x124]
push 0
push 0
push 0
push 0
push 0x20
call dword [0x7a47e0]
push 0
push 0
push 0
push 0
push 0xd
call dword [0x7a47e0]
push 0
push 0
push 0
push 0
push 0
call dword [0x7a47e0]
mov ecx, dword [0x78d46c]
add esp, 0x3c
push ecx
call ebp
mov eax, dword [esp + 0x44]
pop ebp
pop ebx
test eax, eax
mov dword [esp + 0xc8], 0xffffffff
je 0x475b8b
push eax
call fcn.006fa390
add esp, 4
mov ecx, dword [esp + 0xc0]
pop edi
mov dword fs:[0], ecx
add esp, 0xc8
ret