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

Disassembly:
sub esp, 0x124
push ebx
mov ebx, dword [esp + 0x134]
push ebp
push esi
mov esi, edx
mov ebp, ecx
push edi
lea edx, [esp + 0x48]
mov ecx, ebx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x58], ebp
call fcn.0043a010
mov eax, dword [esp + 0x144]
test eax, eax
je 0x4544b4
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x60], edx
mov edx, eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x64], ecx
mov ecx, dword [edx]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x6c], ecx
lea ecx, [eax + 0xc]
mov edx, dword [edx + 8]
mov dword [esp + 0x70], edx
mov edx, dword [ecx]
mov dword [esp + 0x68], edx
mov edx, eax
mov esi, dword [edx]
mov dword [esp + 0x74], esi
mov esi, dword [edx + 4]
mov dword [esp + 0x78], esi
mov edx, dword [edx + 8]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x78], edx
mov edx, eax
mov esi, dword [edx]
mov dword [esp + 0x80], esi
mov esi, dword [edx + 4]
mov dword [esp + 0x84], esi
mov edx, dword [edx + 8]
mov dword [esp + 0x88], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x88], edx
mov edx, ecx
mov esi, dword [edx]
mov dword [esp + 0x8c], esi
mov esi, dword [edx + 4]
mov dword [esp + 0x90], esi
mov edx, dword [edx + 8]
mov dword [esp + 0x94], edx
mov edx, ecx
mov esi, dword [edx]
mov dword [esp + 0x98], esi
mov esi, dword [edx + 4]
mov dword [esp + 0x9c], esi
mov edx, dword [edx + 8]
mov dword [esp + 0xa0], edx
mov edx, dword [eax]
mov dword [esp + 0x98], edx
mov edx, ecx
mov esi, dword [edx]
mov dword [esp + 0xa4], esi
mov esi, dword [edx + 4]
mov dword [esp + 0xa8], esi
mov edx, dword [edx + 8]
mov dword [esp + 0xac], edx
mov edx, dword [eax + 4]
mov dword [esp + 0xa8], edx
mov edx, dword [ecx]
mov dword [esp + 0xb0], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xb4], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xb8], ecx
mov ecx, ebx
mov dword [esp + 0xb8], edx
call fcn.0043a4e0
lea ecx, [esp + 0x3c]
mov esi, eax
push 0xd1b866e1
push 0xd1b866e1
push 0xd1b866e1
call fcn.00431170
lea ecx, [esp + 0x30]
push 0x51b866e1
push 0x51b866e1
push 0x51b866e1
call fcn.00431170
lea edi, [esp + 0x5c]
mov ebx, 8
push edi
mov edx, edi
mov ecx, esi
call fcn.004330e0
lea eax, [esp + 0x20]
mov edx, edi
mov ecx, dword [esp + 0x140]
push eax
call fcn.0043a2b0
fld dword [esp + 0x20]
fcomp dword [esp + 0x3c]
fnstsw ax
and eax, 0x4100
jne 0x454391
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
fld dword [esp + 0x20]
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 5
jp 0x4543a8
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], edx
fld dword [esp + 0x24]
fcomp dword [esp + 0x40]
fnstsw ax
and eax, 0x4100
jne 0x4543c1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
fld dword [esp + 0x24]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 5
jp 0x4543d8
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
fld dword [esp + 0x28]
fcomp dword [esp + 0x44]
fnstsw ax
and eax, 0x4100
jne 0x4543f1
mov edx, dword [esp + 0x28]
mov dword [esp + 0x44], edx
fld dword [esp + 0x28]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 5
jp 0x454408
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
add edi, 0xc
dec ebx
jne 0x45435b
fild dword [esp + 0x48]
fcomp dword [esp + 0x3c]
fnstsw ax
and eax, 0x4100
je 0x454994
fild dword [esp + 0x4c]
fcomp dword [esp + 0x30]
fnstsw ax
test ah, 5
jnp 0x454994
fild dword [esp + 0x50]
fcomp dword [esp + 0x40]
fnstsw ax
and eax, 0x4100
je 0x454994
fild dword [esp + 0x54]
fcomp dword [esp + 0x34]
fnstsw ax
test ah, 5
jnp 0x454994
fld dword [esp + 0x44]
fcomp dword [0x47d334]
fnstsw ax
test ah, 5
jnp 0x454994
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x144]
call fcn.00439ff0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4544a9
fld dword [esp + 0x38]
fcomp dword [esp + 0x1c]
fnstsw ax
and eax, 0x4100
je 0x454994
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x140]
fild dword [esp + 0x54]
push 0x3f800000
mov ecx, dword [esp + 0x13c]
sub esp, 0x10
mov eax, dword [ecx + 0x33c94]
fstp dword [esp + 0xc]
fild dword [esp + 0x64]
inc eax
mov dword [ecx + 0x33c94], eax
fstp dword [esp + 8]
fild dword [esp + 0x60]
fstp dword [esp + 4]
fild dword [esp + 0x5c]
fstp dword [esp]
call fcn.00466140
mov ecx, esi
call fcn.00453100
lea edx, [esp + 0xbc]
mov ecx, esi
mov edi, eax
call fcn.00453110
mov ecx, dword [ebp + 4]
lea edx, [esp + 0xbc]
push ebx
push 0
push edi
call fcn.00465b70
mov ebx, eax
test ebx, ebx
jne 0x454552
push eax
push 0x492c40
push 0x56a
push 0x48eb30
push 0x492c40
push 0x67
call fcn.00446f60
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret 0x10
fild dword [esp + 0x48]
fstp dword [esp + 0x18]
fld dword [ebx + 0x1c]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 5
jnp 0x454994
fild dword [esp + 0x4c]
fstp dword [esp + 0x14]
fld dword [ebx + 0x28]
fcomp dword [esp + 0x14]
fnstsw ax
and eax, 0x4100
je 0x454994
fild dword [esp + 0x50]
fstp dword [esp + 0x10]
fld dword [ebx + 0x20]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 5
jnp 0x454994
fild dword [esp + 0x54]
fstp dword [esp + 0x1c]
fld dword [ebx + 0x2c]
fcomp dword [esp + 0x1c]
fnstsw ax
and eax, 0x4100
je 0x454994
fld dword [ebx + 0x24]
fcomp dword [0x47d334]
fnstsw ax
test ah, 5
jnp 0x454994
fld dword [ebx + 0x1c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x454628
fld dword [ebx + 0x28]
fcomp dword [esp + 0x18]
fnstsw ax
and eax, 0x4100
jne 0x454628
fld dword [ebx + 0x20]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x454628
fld dword [ebx + 0x2c]
fcomp dword [esp + 0x10]
fnstsw ax
and eax, 0x4100
jne 0x454628
fld dword [ebx + 0x30]
fcomp dword [0x47d334]
mov dword [esp + 0x1c], 0
fnstsw ax
and eax, 0x4100
je 0x454630
mov dword [esp + 0x1c], 1
mov edx, dword [ebp + 0x30]
lea eax, [ebp + 0x18]
mov dword [0x4eaa80], edx
mov ecx, dword [eax]
mov dword [0x4eaa84], ecx
mov edx, dword [eax + 4]
mov dword [0x4eaa88], edx
mov eax, dword [eax + 8]
mov dword [0x4eaa8c], eax
mov ecx, dword [ebp + 0x24]
mov dword [0x4eaa9c], ecx
mov edx, dword [ebp + 0x28]
mov dword [0x4eaaa0], edx
mov eax, dword [ebp + 0x2c]
mov dword [0x4eaaa4], eax
mov ecx, dword [ebp + 0x44]
lea edx, [esp + 0x5c]
mov dword [0x4eaec4], ecx
push edx
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.00452ae0
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x454797
mov eax, dword [ebp + 0x44]
test eax, eax
je 0x454775
lea edx, [esp + 0x14]
mov ecx, edi
call fcn.004659f0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, edi
jle 0x4547a1
cmp dword [0x4a8584], eax
jge 0x454720
mov edx, dword [0x4a8580]
mov ecx, eax
shl ecx, 8
add ecx, eax
shl ecx, 2
push ecx
push edx
call fcn.004525b0
add esp, 8
cmp eax, edi
jne 0x454712
push str.Failed_to_allocate_space_for_bone_lighting_info_cache
push 0x492c40
push 0x5b5
push 0x48eb30
push 0x492c40
push 0x67
call fcn.00446f60
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret 0x10
mov dword [0x4a8580], eax
mov eax, dword [esp + 0x14]
mov dword [0x4a8584], eax
cmp eax, edi
mov dword [esp + 0x10], edi
jle 0x4547a1
mov eax, dword [esp + 0x18]
lea esi, [eax + 0x24]
mov ecx, dword [0x4a8580]
push esi
lea edx, [edi + ecx]
mov ecx, ebp
push edx
mov edx, dword [esp + 0x144]
call fcn.00453be0
mov ecx, dword [0x4a8580]
add esi, 0x30
mov dword [edi + ecx + 0x400], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
add edi, 0x404
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x45472f
mov esi, dword [esp + 0x2c]
jmp 0x4547a1
lea edx, [esp + 0x80]
mov ecx, ebp
push edx
mov edx, dword [esp + 0x140]
push 0x4eaac0
call fcn.00453be0
mov dword [0x4eaec0], eax
jmp 0x4547a1
mov dword [0x4eaec0], 0
mov edx, dword [esp + 0x13c]
lea eax, [esp + 0x80]
push eax
push 0x4eaaa8
mov ecx, ebp
call fcn.00453d80
movsx eax, word [ebx + 0x10]
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x130], 0x437f0000
test eax, eax
mov dword [esp + 0x10c], 0x437f0000
mov dword [esp + 0xe8], 0x437f0000
jle 0x45496c
mov dword [esp + 0x18], eax
mov si, word [edi + 2]
add edi, 2
add edi, 2
mov eax, dword [ebx + 4]
movsx ecx, word [edi]
movsx edx, word [edi + 4]
lea ecx, [ecx + ecx*2]
lea edx, [edx + edx*2]
fld dword [eax + ecx*8]
fld dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
lea edx, [eax + edx*8]
lea ecx, [edi + 4]
fld dword [edx]
fsub st(2)
fld dword [edx + 4]
movsx edx, word [ecx + 4]
fsub st(2)
add ecx, 4
lea edx, [edx + edx*2]
fld dword [eax + edx*8 + 4]
lea eax, [eax + edx*8]
fsub st(3)
fmul st(2)
fld dword [eax]
fsub st(5)
fmul st(2)
fsubp st(1)
fcomp dword [0x47d338]
fstp st(0)
fstp st(0)
fnstsw ax
fstp st(0)
and eax, 0x4100
fstp st(0)
jne 0x45485f
lea edi, [ecx + 4]
jmp 0x454959
cmp si, 0xffff
je 0x45489c
mov edx, dword [ebp + 0xc]
movsx eax, si
lea ecx, [eax*8]
sub ecx, eax
lea esi, [edx + ecx*4]
mov dword [esp + 0x14], esi
mov ecx, dword [esi + 0x10]
call fcn.00466100
mov eax, dword [esi]
mov dword [0x4eaa90], eax
mov ecx, dword [esi + 4]
mov dword [0x4eaa94], ecx
mov edx, dword [esi + 8]
mov dword [0x4eaa98], edx
lea esi, [esp + 0xd0]
mov dword [esp + 0x10], 3
movsx eax, word [edi]
mov ecx, dword [ebx + 4]
add edi, 2
lea eax, [eax + eax*2]
mov ebp, dword [ebx + 0xc]
add edi, 2
mov edx, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
lea ecx, [esi - 8]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [esi - 4], edx
mov edx, dword [eax + 8]
mov dword [esi], edx
mov edx, dword [eax + 0xc]
mov dword [esi + 4], edx
mov edx, dword [eax + 0x10]
mov dword [esi + 8], edx
movsx edx, word [edi - 2]
lea edx, [edx + edx*2]
lea edx, [ebp + edx*4]
mov ebp, dword [edx]
mov dword [0x4eaab4], ebp
mov ebp, dword [edx + 4]
mov dword [0x4eaab8], ebp
mov edx, dword [edx + 8]
mov dword [0x4eaabc], edx
mov edx, dword [eax + 0x14]
call fcn.00453fa0
mov ebp, dword [esp + 0x58]
add esi, 0x24
mov eax, dword [ebp + 0x5c]
mov dword [esi - 0xc], eax
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
jne 0x4548ab
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45493a
lea ecx, [esp + 0xc8]
call fcn.004661a0
jmp 0x454959
mov ecx, dword [esp + 0x14]
push 0
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x13c]
push edx
push 3
lea edx, [esp + 0xd4]
call fcn.0042ebd0
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
jne 0x4547f0
mov esi, dword [esp + 0x2c]
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x454994
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x138]
push eax
push ecx
push edx
mov edx, esi
mov ecx, ebp
call fcn.004549b0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x124
ret 0x10