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

Disassembly:
sub esp, 0xac
push ebx
push ebp
mov ebp, dword [esp + 0xb8]
push esi
push edi
push ebp
call fcn.004ba230
add esp, 4
test eax, eax
je 0x4bac51
mov ebx, dword [esp + 0xc4]
push ebx
call fcn.004ba230
add esp, 4
test eax, eax
je 0x4bac51
mov eax, dword [0x122f7b8]
lea ebx, [ebx + ebx*2]
lea ebp, [ebp + ebp*2]
xor edx, edx
mov eax, dword [eax + 0xd4]
shl ebx, 4
shl ebp, 4
add ebx, eax
add ebp, eax
mov edi, ebx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebx
lea esi, [ebx + 0xc]
lea ecx, [ebp + 0x18]
sub edi, ebp
fld dword [ecx + edi]
fadd dword [0x4e0444]
fcomp dword [ecx - 0xc]
fnstsw ax
test ah, 1
jne 0x4bac51
fld dword [esi]
fsub dword [0x4e0444]
fcomp dword [ecx]
fnstsw ax
test ah, 0x41
je 0x4bac51
inc edx
add ecx, 4
add esi, 4
cmp edx, 2
jl 0x4ba6da
fld dword [ebx + 0x14]
fcomp dword [ebp + 0x20]
fnstsw ax
test ah, 0x41
je 0x4bac51
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], 0
push ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0xbf800000
call fcn.0042c090
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x78]
add esp, 4
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 4]
xor edi, edi
test eax, eax
mov dword [esp + 0x24], 0x47c34f80
mov dword [esp + 0x38], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], edi
jle 0x4bac51
mov ecx, dword [0x122f7b8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0xcc]
add edx, edi
mov eax, dword [eax + edx*4]
cdq
xor eax, edx
sub eax, edx
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0xc4]
lea esi, [eax + edx*8]
mov dword [esp + 0x30], esi
test byte [esi + 4], 4
je 0x4bab62
mov eax, dword [ebx + 4]
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4bab62
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x20]
add edx, eax
mov eax, dword [ecx + 0xcc]
mov eax, dword [eax + edx*4]
cdq
xor eax, edx
sub eax, edx
lea edx, [eax + eax*2]
mov eax, dword [ecx + 0xc4]
lea edi, [eax + edx*8]
mov dword [esp + 0x58], edi
test byte [edi + 4], 4
je 0x4bab4a
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x4bab4a
mov eax, dword [edi + 8]
xor edx, edx
test eax, eax
mov dword [esp + 0x28], edx
jle 0x4bab36
jmp 0x4ba81f
mov esi, dword [esp + 0x30]
mov esi, dword [esi + 0xc]
mov ebx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xbc]
add esi, ebx
mov ebx, dword [edi + 0xc]
mov esi, dword [eax + esi*4]
add ebx, edx
mov dword [esp + 0x68], esi
mov eax, dword [eax + ebx*4]
cdq
mov ebx, eax
mov eax, esi
xor ebx, edx
sub ebx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jne 0x4bab16
xor edx, edx
mov eax, esi
test esi, esi
setl dl
mov edi, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ecx + 0xb4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xa4]
mov edx, dword [esi + 4]
lea ebx, [edx + edx*2]
mov edx, dword [esi]
fld dword [eax + ebx*4]
lea edx, [edx + edx*2]
fsub dword [eax + edx*4]
fstp dword [esp + 0xa4]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0xa4]
lea ebx, [edx + edx*2]
mov edx, dword [esi]
fld dword [eax + ebx*4 + 4]
lea edx, [edx + edx*2]
fsub dword [eax + edx*4 + 4]
fstp dword [esp + 0xa8]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0xa4]
lea edx, [eax + eax*2]
mov eax, dword [esi]
fld dword [ecx + edx*4 + 8]
lea eax, [eax + eax*2]
fsub dword [ecx + eax*4 + 8]
lea ecx, [esp + 0xa4]
push ecx
fstp dword [esp + 0xb0]
call fcn.0042bfc0
mov ecx, dword [0x122f7b8]
mov edx, dword [esi + 4]
mov ebx, dword [esi]
mov eax, dword [ecx + 0xa4]
lea edx, [edx + edx*2]
fstp dword [esp + 0x40]
fld dword [eax + edx*4]
lea ebx, [ebx + ebx*2]
lea edx, [eax + edx*4]
fadd dword [eax + ebx*4]
fld dword [eax + ebx*4 + 4]
fadd dword [edx + 4]
lea ebp, [eax + ebx*4]
mov ebx, dword [esi + edi*4]
fstp dword [esp + 0x18]
fld dword [ebp + 8]
fadd dword [edx + 8]
xor edx, edx
lea ebp, [ebx + ebx*2]
test edi, edi
sete dl
fstp dword [esp + 0x1c]
mov ebx, dword [esi + edx*4]
lea edx, [esi + edx*4]
fmul qword [0x4e03e8]
lea ebx, [ebx + ebx*2]
fstp dword [esp + 0x14]
fld dword [esp + 0x18]
fmul qword [0x4e03e8]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul qword [0x4e03e8]
fst dword [esp + 0x1c]
fstp dword [esp + 0x68]
fld dword [eax + ebp*4]
fsub dword [eax + ebx*4]
fstp dword [esp + 0xb4]
mov ebx, dword [esi + edi*4]
mov eax, dword [ecx + 0xa4]
lea ebp, [ebx + ebx*2]
mov ebx, dword [edx]
fld dword [eax + ebp*4 + 4]
lea ebx, [ebx + ebx*2]
fsub dword [eax + ebx*4 + 4]
fstp dword [esp + 0xb8]
mov esi, dword [esi + edi*4]
mov edx, dword [edx]
mov eax, dword [ecx + 0xa4]
mov edi, dword [esp + 0x5c]
lea esi, [esi + esi*2]
lea edx, [edx + edx*2]
fld dword [eax + esi*4 + 8]
fsub dword [eax + edx*4 + 8]
lea eax, [esp + 0x44]
push eax
fstp dword [esp + 0xc0]
mov eax, dword [edi]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xac]
lea ecx, [eax + edx*4]
lea edx, [esp + 0xb8]
push ecx
push edx
call fcn.0042bf80
lea eax, [esp + 0x50]
push eax
call fcn.0042bd60
fstp st(0)
fld dword [esp + 0x54]
fmul dword [0x4e0aec]
add esp, 0x14
fadd dword [esp + 0x10]
fld dword [esp + 0x44]
fmul dword [0x4e0aec]
fadd dword [esp + 0x14]
fstp dword [esp + 0x60]
fld dword [esp + 0x40]
fmul qword [0x4e0408]
fadd dword [esp + 0x10]
fld dword [esp + 0x44]
fmul qword [0x4e0408]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x48]
fmul qword [0x4e0408]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x48]
fmul dword [0x4e0aec]
fadd dword [esp + 0x64]
fadd qword [0x4e0490]
fstp dword [esp + 0x64]
fld dword [esp + 0x18]
fmul dword [esp + 0x54]
fld dword [esp + 0x14]
fmul dword [esp + 0x50]
faddp st(1)
fld st(1)
fmul dword [esp + 0x4c]
faddp st(1)
fcom dword [esp + 0x24]
fnstsw ax
test ah, 1
jne 0x4baa8b
fld dword [esp + 0x24]
fadd dword [0x4e03d0]
fld st(1)
fcompp
fnstsw ax
test ah, 1
je 0x4bab0a
fld dword [esp + 0x3c]
fcomp dword [esp + 0x38]
fnstsw ax
test ah, 0x41
jne 0x4bab0a
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
fstp dword [esp + 0x24]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x74], edx
fstp dword [esp + 0x80]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x90], eax
fstp dword [esp + 0x8c]
mov eax, 1
mov dword [esp + 0x78], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], 2
mov word [esp + 0x9c], ax
mov dword [esp + 0x2c], eax
jmp 0x4bab10
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [0x122f7b8]
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 8]
inc edx
cmp edx, eax
mov dword [esp + 0x28], edx
jl 0x4ba81b
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 8]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jl 0x4ba808
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 4]
inc eax
cmp eax, edx
mov dword [esp + 0x20], eax
jl 0x4ba7c4
mov edi, dword [esp + 0x34]
mov eax, dword [ebp + 4]
inc edi
cmp edi, eax
mov dword [esp + 0x34], edi
jl 0x4ba784
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4bac51
call fcn.004b9c00
mov esi, eax
test esi, esi
je 0x4bac51
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov dword [esi], edx
mov edx, dword [esp + 0x80]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x88]
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x8c]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x94]
mov dword [esi + 0x18], edx
mov edx, dword [esp + 0x98]
mov dword [esi + 0x1c], eax
mov ax, word [esp + 0x9c]
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edx
mov word [esi + 0x28], ax
mov ecx, dword [0x1228434]
mov eax, dword [esp + 0xc0]
push eax
mov edx, dword [ecx + eax*4]
mov dword [esi + 0x2c], edx
mov ecx, dword [0x1228434]
mov dword [ecx + eax*4], esi
call fcn.004ba180
add esp, 4
test eax, eax
jne 0x4bac36
mov edx, dword [esp + 0xc4]
push edx
call fcn.004ba180
add esp, 4
test eax, eax
je 0x4bac36
add word [esi + 0x28], 0x12c
mov eax, dword [0x1228474]
pop edi
inc eax
pop esi
mov dword [0x1228474], eax
pop ebp
mov eax, 1
pop ebx
add esp, 0xac
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xac
ret