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

Disassembly:
push 0xffffffffffffffff
push 0x7178a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
mov ebx, dword [esp + 0x148]
mov ecx, dword [ebx + 8]
mov eax, dword [ecx]
push ebp
push esi
push edi
call dword [eax + 0x50]
mov ebp, eax
mov edi, dword [ebp + 4]
xor esi, esi
cmp word [edi + 0x182], si
mov dword [esp + 0x38], ebp
mov dword [esp + 0x84], edi
je 0x48d01f
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x2c]
mov eax, dword [ebp + 0x40]
fld dword [eax + 0x80]
fsub dword [eax + 0x9c]
fld dword [eax + 0x7c]
fsub dword [eax + 0x98]
fld dword [eax + 0x78]
fsub dword [eax + 0x94]
lea eax, [esp + 0x1c]
push eax
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
fstp dword [esp + 0x28]
call fcn.004ab100
fst dword [esp + 0x40]
add esp, 4
fcomp dword [0x73d700]
fnstsw ax
test ah, 0x41
jne 0x48d006
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x18]
lea ecx, [esp + 0xd0]
call fcn.00437af0
test byte [0x83044c], 1
jne 0x48c741
or dword [0x83044c], 1
push 0x73bdd0
mov dword [0x830444], esi
mov dword [0x830448], esi
mov dword [0x830440], esi
call fcn.006fb332
add esp, 4
mov dword [esp + 0x14c], 0xffffffff
test byte [0x83044c], 2
jne 0x48c77b
or dword [0x83044c], 2
push 0x73bdb0
mov dword [0x830438], esi
mov dword [0x83043c], esi
mov dword [0x830434], esi
call fcn.006fb332
add esp, 4
mov dword [esp + 0x14c], 0xffffffff
push esi
mov dword [0x830444], esi
mov dword [0x830438], esi
call dword [0x73d28c]
mov eax, dword [0x78d46c]
push eax
call dword [0x73d390]
fld dword [ebp + 0x10]
fchs
lea ecx, [esp + 0x28]
fld dword [ebp + 0xc]
push ecx
fchs
lea ebx, [ebp + 0x14]
fld dword [ebp + 8]
lea edx, [esp + 0x90]
fchs
push ebx
fstp dword [esp + 0x30]
push edx
mov esi, ebp
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
call fcn.004a9b50
add esp, 8
push eax
lea eax, [esp + 0x54]
push eax
call fcn.004a9bb0
lea ecx, [esp + 0x70]
push ebx
push ecx
call fcn.004a9b50
mov eax, dword [ebp + 0x3c]
add esp, 0x14
test eax, eax
je 0x48c8dc
mov esi, eax
fld dword [esi + 0x10]
lea edx, [esp + 0x28]
fchs
push edx
fld dword [esi + 0xc]
lea ebx, [esi + 0x14]
fchs
lea eax, [esp + 0x114]
fld dword [esi + 8]
push ebx
fchs
push eax
fstp dword [esp + 0x34]
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
call fcn.004a9b50
add esp, 8
push eax
lea ecx, [esp + 0xfc]
push ecx
call fcn.004a9bb0
push eax
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.004a9bb0
fld dword [esp + 0x6c]
fadd dword [eax + 8]
push ebx
fld dword [esp + 0x6c]
fadd dword [eax + 4]
fld dword [esp + 0x68]
fadd dword [eax]
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x68], ecx
fstp dword [esp + 0x30]
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x11c]
fstp dword [esp + 0x34]
mov eax, dword [esp + 0x34]
push ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
call fcn.004a9b50
push eax
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0xc4]
push eax
call fcn.004a9ac0
mov ecx, dword [eax]
mov dword [esp + 0x90], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x94], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x9c], edx
mov eax, dword [esi + 0x3c]
add esp, 0x2c
test eax, eax
jne 0x48c7f4
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x60]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
push 0x830440
mov dword [eax + 4], edx
push 0x830434
push esi
mov dword [eax + 8], ecx
call fcn.00488930
mov eax, dword [edi + 0x1b4]
xor esi, esi
add esp, 0x28
test eax, eax
mov dword [esp + 0x34], esi
jle 0x48cad4
xor ebp, ebp
xor ebx, ebx
jmp 0x48c950
mov edx, dword [edi + 0x1b0]
fld dword [edx + esi*4]
call fcn.006fae8c
cmp eax, 0xffffffff
mov dword [esp + 0x88], eax
je 0x48cab7
mov eax, dword [0x830434]
mov ecx, dword [edi + 0x1c4]
mov edx, dword [0x830440]
add ecx, ebp
push ecx
lea esi, [eax + ebp]
lea eax, [ebx + edx]
push eax
lea ecx, [esp + 0x94]
push ecx
call fcn.004a9bb0
fld dword [esi + 8]
fadd dword [eax + 8]
mov edx, dword [0x830434]
fld dword [esi + 4]
fadd dword [eax + 4]
fld dword [eax]
lea eax, [edx + ebp]
fadd dword [esi]
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov dword [eax + 4], edx
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x1b8]
mov edx, dword [0x830440]
add eax, ebx
push eax
lea esi, [ebx + edx]
lea ecx, [esp + 0xac]
push esi
push ecx
call fcn.004a9ac0
mov edx, dword [eax]
mov dword [esi], edx
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov eax, dword [eax + 0xc]
add esp, 0x18
mov dword [esi + 0xc], eax
mov edx, dword [0x830440]
lea ecx, [esp + 0x120]
push ecx
lea ecx, [ebx + edx]
call fcn.0044f470
mov esi, eax
mov eax, dword [0x830434]
mov ecx, 9
lea edi, [esp + 0xd0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + ebp]
mov edx, dword [esp + 0xe8]
mov esi, dword [esp + 0x88]
lea edi, [eax + ebp]
mov eax, dword [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0xd4]
push edx
push eax
push ecx
lea esi, [esi + esi*2 + 0x12]
push esi
call fcn.0044f820
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xf4]
push edx
mov edx, dword [esp + 0xec]
push eax
push ecx
push edx
inc esi
push esi
call fcn.0044f820
inc esi
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x104]
push ecx
push edx
push eax
push esi
call fcn.0044f820
mov edi, dword [esp + 0xc0]
mov esi, dword [esp + 0x70]
add esp, 0x3c
mov eax, dword [edi + 0x1b4]
inc esi
add ebx, 0x10
add ebp, 0xc
cmp esi, eax
mov dword [esp + 0x34], esi
jl 0x48c950
mov ebp, dword [esp + 0x38]
mov cl, byte [0x83044c]
mov eax, 4
test al, cl
jne 0x48cb38
or dword [0x83044c], eax
push 0x201c
mov dword [esp + 0x150], 2
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
mov byte [esp + 0x14c], 3
je 0x48cb26
mov ecx, dword [0x830598]
push ecx
push str.__VP1.0__This_is_the_standard_vertex_program._nMUL___R0__v_COL1___c_16_.zzzz_ARL___A0.x__R0.x_DP4___R1.x__v_OPOS___c_A0.x__18__DP4___R1.y__v_OPOS___c_A0.x__19__DP4___R1.z__v_OPOS___c_A0.x__20__DP3___R5.x__v_NRML___c_A0.x__18__DP3___R5.y__v_NRML___c_A0.x__19__DP3___R5.z__v_NRML___c_A0.x__20__ARL___A0.x__R0.y_DP4___R2.x__v_OPOS___c_A0.x__18__DP4___R2.y__v_OPOS___c_A0.x__19__DP4___R2.z__v_OPOS___c_A0.x__20__DP3___R6.x__v_NRML___c_A0.x__18__DP3___R6.y__v_NRML___c_A0.x__19__DP3___R6.z__v_NRML___c_A0.x__20__ARL___A0.x__R0.z_DP4___R3.x__v_OPOS___c_A0.x__18__DP4___R3.y__v_OPOS___c_A0.x__19__DP4___R3.z__v_OPOS___c_A0.x__20__DP3___R7.x__v_NRML___c_A0.x__18__DP3___R7.y__v_NRML___c_A0.x__19__DP3___R7.z__v_NRML___c_A0.x__20__ARL___A0.x__R0.w_DP4___R4.x__v_OPOS___c_A0.x__18__DP4___R4.y__v_OPOS___c_A0.x__19__DP4___R4.z__v_OPOS___c_A0.x__20__DP3___R8.x__v_NRML___c_A0.x__18__DP3___R8.y__v_NRML___c_A0.x__19__DP3___R8.z__v_NRML___c_A0.x__20__MUL___R9__v_WGHT_.x__R1_MAD___R9__R2__v_WGHT_.y__R9_MAD___R9__R3__v_WGHT_.z__R9_MAD___R9__R4__v_WGHT_.w__R9_MOV___R9.w__c_16_.w_MUL___R10__v_WGHT_.x__R5_MAD___R10__R6__v_WGHT_.y__R10_MAD___R10__R7__v_WGHT_.z__R10_MAD___R10__R8__v_WGHT_.w__R10_DP3___R10.w__R10__R10_RSQ___R10.w__R10.w_MUL___R10____R10__R10.w_MOV___R10.w__c_16_.x_MOV__R4__c_12__MOV___R7.x__c_14_.x_MIN___R2.y__R7.x__c_14_.y_MUL___R5.xyz__R4__R2.y_MOV___R5.w__c_16_.x_DP3___R3.w__R4__R10_SLT___R2.w__R3.w__c_16_.x_MOV___R1__c_17_.xyzw_MOV___R1.w__c_16_.x_MAD___R6__R2.w___R5__R9.xyzw_MUL___R7.y__R2.y__c_13_.x_RCP___R8.y__c_14_.y_MUL___R8.w__R2.y__R8.y_MUL___R7.y__R7.y__R8.w_MUL___R7.y__R7.y__c_17_.w_MOV___R3.w____c_16_.x_MOV___R3.xyz__c_69__DP3___R3.w____R3__R3_RSQ___R5.w____R3.w_MUL___R3______R3__R5.w_ADD___R5.xyz__R6___R1_DP3___R5.w__R5__R3_SLT___R5.x__R5.w__c_16_.x_MOV___R7.x__c_16_.w_MAD___R5.y__R5.x___c_16_.y__R7.x_MUL___R5.z__R5.y__R7.y_MUL___R5.z__R5.z__R2.w_MAD___R6__R5.z__R3__R6_ADD___R2.x___R2.w__c_16_.w_MUL___R1__R10___c_14_.z_MOV___R1.w__c_16_.x_MAD___R5__R2.x__R1__R6_DP4___R1.x__R5__c_0__DP4___R1.y__R5__c_1__DP4___R1.z__R5__c_2__DP4___R1.w__R5__c_3__MOV___o_HPOS_.xyzw__R1.xyzw_ADD___R2.w__c_16_.w___R2.w_MOV___R9.xyz__c_16_.xxxx_MUL___R9.w__c_69_.w__R2.w_MOV___o_COL0___R9_DP3___R11.x__c_8____R10_DP3___R11.y__c_9____R10_DP3___R11.z__c_10___R10_MOV___R11.w__c_16_.w_DP4___R10.x__c_8____R5_DP4___R10.y__c_9____R5_DP4___R10.z__c_10___R5_MOV___R10.w__c_16_.w_DP3___R1.w__R10__R10_RSQ___R1.w__R1.w_RCP___R1.w__R1.w_MOV___o_FOGC_.x___R1.w_MOV___o_TEX0___v_TEX0__
mov ecx, eax
call fcn.004a27d0
jmp 0x48cb28
xor eax, eax
mov dword [0x830430], eax
mov dword [esp + 0x14c], 0xffffffff
mov edx, dword [ebp]
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov ecx, ebp
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0x3f800000
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call dword [edx + 0xc]
mov eax, dword [0x7bb4e8]
fld dword [eax + 0x84]
lea edx, [esp + 0x28]
fsub dword [esp + 0x60]
push edx
fld dword [eax + 0x80]
lea ecx, [esp + 0xa0]
fsub dword [esp + 0x60]
fld dword [eax + 0x7c]
lea eax, [esp + 0x78]
fsub dword [esp + 0x5c]
push eax
push ecx
fstp dword [esp + 0x34]
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
call fcn.004a9b50
add esp, 8
push eax
lea edx, [esp + 0xb4]
push edx
call fcn.004a9bb0
mov eax, dword [ebp + 0x40]
fld dword [eax + 0x8c]
add eax, 0x84
fld dword [eax + 4]
lea ecx, [esp + 0x28]
fld st(0)
lea edx, [esp + 0x4c]
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fadd st(0), st(0)
fsubr dword [0x73d764]
fstp st(2)
fstp st(0)
fld dword [eax + 0xc]
fmul dword [eax + 8]
fld dword [eax + 4]
fmul dword [eax]
fsubp st(1)
fadd st(0), st(0)
fld dword [eax + 0xc]
fmul dword [eax + 4]
fld dword [eax + 8]
fmul dword [eax]
lea eax, [esp + 0x34]
push eax
push ecx
faddp st(1)
push edx
fadd st(0), st(0)
fstp dword [esp + 0x40]
fstp dword [esp + 0x44]
fstp dword [esp + 0x48]
call fcn.004ab210
add esp, 0x18
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0xa4]
push edx
call fcn.004a9b50
add esp, 8
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004a9bb0
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
add esp, 0xc
mov dword [esp + 0x20], edx
mov eax, dword [eax + 8]
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x78]
mov dword [esp + 0x28], eax
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.004a9b50
add esp, 8
push eax
lea ecx, [esp + 0x94]
push ecx
call fcn.004a9bb0
fld dword [0x78e574]
fadd st(0), st(0)
mov edx, dword [eax]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 4]
fdivr dword [esp + 0x48]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 8]
mov eax, dword [ebp + 0x40]
add eax, 0x78
mov dword [esp + 0x54], edx
add esp, 0xc
lea ecx, [esp + 0x74]
lea edx, [esp + 0x9c]
fstp dword [esp + 0x3c]
fld dword [eax + 8]
fsub dword [esp + 0x60]
fld dword [eax + 4]
fsub dword [esp + 0x5c]
fld dword [eax]
fsub dword [esp + 0x58]
lea eax, [esp + 0x10]
push eax
push ecx
push edx
fstp dword [esp + 0x1c]
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
call fcn.004a9b50
add esp, 8
push eax
lea eax, [esp + 0x94]
push eax
call fcn.004a9bb0
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [0x78e5ec]
add esp, 0xc
test eax, eax
push 0x3f800000
push 0x40400000
push 0x40000000
push 0
push 0x10
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebx
push 0x8620
je 0x48cd63
call dword [0x7bb850]
jmp 0x48cd69
call dword [0x7bb7ac]
mov eax, dword [0x78e5ec]
test eax, eax
push 0x3e19999a
push ebx
push edi
push esi
push 0x11
push 0x8620
je 0x48cd89
call dword [0x7bb850]
jmp 0x48cd8f
call dword [0x7bb7ac]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x90]
push edx
call fcn.004ab180
mov ecx, dword [eax]
mov esi, dword [0x78e5ec]
add esp, 8
test esi, esi
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 4]
push 0x3f800000
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
push eax
push edx
push ecx
push 0xc
mov dword [esp + 0x38], eax
push 0x8620
je 0x48cdd9
call dword [0x7bb850]
jmp 0x48cddf
call dword [0x7bb7ac]
mov eax, dword [ebp + 0x40]
mov ecx, dword [eax + 0x180]
mov eax, dword [0x78e5ec]
test eax, eax
push 0x3f59999a
mov dword [esp + 0x38], ecx
push 0x3c23d70a
je 0x48ce16
mov eax, dword [esp + 0x44]
mov edx, ecx
push edx
push eax
push 0xe
push 0x8620
call dword [0x7bb850]
jmp 0x48ce2d
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
push ecx
push edx
push 0xe
push 0x8620
call dword [0x7bb7ac]
mov eax, dword [0x78e5ec]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
push 0x3f000000
test eax, eax
mov eax, dword [esp + 0x4c]
push eax
push ecx
push edx
push 0x45
push 0x8620
je 0x48ce59
call dword [0x7bb850]
jmp 0x48ce5f
call dword [0x7bb7ac]
mov eax, dword [0x78e5ec]
test eax, eax
push 0
push 0
push 0
push 0
push 0xd
push 0x8620
je 0x48ce7f
call dword [0x7bb850]
jmp 0x48ce85
call dword [0x7bb7ac]
fld dword [esp + 0x28]
fsub dword [esp + 0xac]
fld dword [esp + 0x2c]
fsub dword [esp + 0xb0]
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0xb4]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [esp + 0x24]
faddp st(1)
fld st(1)
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x1c]
fmul st(1)
fld st(1)
fmul dword [esp + 0x20]
fxch st(2)
fmul dword [esp + 0x24]
fld st(0)
fmul st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(4)
fmul st(5)
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
faddp st(1)
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fmul dword [0x742efc]
fcompp
fstp st(0)
fnstsw ax
fstp st(1)
test ah, 5
fstp st(0)
jp 0x48cfbf
fld dword [esp + 0x1c]
lea eax, [esp + 0xc4]
fadd st(1)
push eax
fstp dword [esp + 0xc8]
fld dword [esp + 0x18]
fadd dword [esp + 0x24]
fstp dword [esp + 0xcc]
fld dword [esp + 0x1c]
fadd dword [esp + 0x28]
fstp dword [esp + 0xd0]
fsub dword [esp + 0x20]
fstp dword [esp + 0xbc]
fld dword [esp + 0x18]
fsub dword [esp + 0x24]
fstp dword [esp + 0xc0]
fld dword [esp + 0x1c]
fsub dword [esp + 0x28]
fstp dword [esp + 0xc4]
call fcn.004ab100
fstp dword [esp + 0x3c]
lea ecx, [esp + 0xbc]
push ecx
call fcn.004ab100
fcomp dword [esp + 0x40]
add esp, 8
fnstsw ax
test ah, 5
jp 0x48cfc1
push 0
push 0
push 0
push 0x3f800000
push 0xd
call fcn.0044f820
mov edx, dword [0x73f2c0]
add esp, 0x14
push edx
call dword [0x73d274]
jmp 0x48cfc1
fstp st(0)
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax]
push 0
push 0
push 0
push ecx
push 0x22
call dword [0x7a47e0]
mov ecx, dword [0x830430]
add esp, 0x14
push 1
push ebp
call fcn.004a24d0
mov edx, dword [esp + 0x154]
push edx
call fcn.0046f900
push 0
push 0
push 0
push 0
push 0
call dword [0x7a47e0]
add esp, 0x18
mov eax, dword [0x73f2c4]
push eax
call dword [0x73d274]
mov ecx, dword [0x78d46c]
push ecx
call dword [0x73d22c]
mov ecx, dword [esp + 0x144]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x140
ret