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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x150
cmp byte [0x6f8580], 0
mov ebp, dword [esp + 0x170]
mov edi, dword [esp + 0x164]
mov ebx, dword [esp + 0x168]
jne 0x4109ba
push 0x80
push 0x14
push 0
push fcn.004114d0
push 0x6f7b80
call fcn.00640320
add esp, 0x14
mov byte [0x6f8580], 1
cmp byte [0x6f8784], 0
jne 0x4109e2
push 0x10
push 0x20
push 0
push 0x4114c0
push 0x6f8584
call fcn.00640320
add esp, 0x14
mov byte [0x6f8784], 1
cmp byte [0x6f95c4], 0
jne 0x410a1d
push 0x6f95b8
push fcn.004dfb00
push 0x6f95c8
mov dword [0x6f9608], 0
mov dword [0x6f960c], 0
call fcn.00645c20
add esp, 0xc
mov byte [0x6f95c4], 1
cmp byte [0x6f961c], 0
jne 0x410a58
push 0x6f9610
push fcn.004dfb00
push 0x6f9620
mov dword [0x6f9660], 0
mov dword [0x6f9664], 0
call fcn.00645c20
add esp, 0xc
mov byte [0x6f961c], 1
push 0x6f95c8
push dword [esp + 0x170]
call fcn.004de890
pop ecx
pop ecx
mov ecx, 0x6f95c8
push eax
call fcn.004df8e0
lea eax, [esp + 0xc0]
push edi
push 0x6f95c8
push eax
call fcn.004de6e0
lea eax, [esp + 0xcc]
add esp, 0xc
mov ecx, 0x6f95c8
push eax
call fcn.004df8e0
lea ecx, [esp + 0xc0]
call fcn.004dfb00
lea eax, [esp + 0x54]
push ebx
fld dword [ebx + 0xc]
fstp dword [esp + 0x4c]
push 0x6f95c8
push eax
call fcn.004dff40
fldz
fldz
fld dword [esp + 0x54]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
fstp st(2)
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
fld dword [esp + 0x48]
fadd st(2)
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
fcomp dword [ebp + 0x10]
fnstsw ax
add esp, 0xc
and ah, 5
cmp ah, 1
je 0x410b09
fld dword [esp + 0x3c]
fsub st(2)
fcomp dword [ebp + 0x1c]
fnstsw ax
test ah, 0x45
jne 0x410b10
xor al, al
jmp 0x410b62
fld dword [esp + 0x40]
fst st(1)
fadd st(2)
fcomp dword [ebp + 0x14]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410b33
fld st(0)
fsub st(2)
fcomp dword [ebp + 0x20]
fnstsw ax
test ah, 0x45
jne 0x410b37
xor al, al
jmp 0x410b62
fld dword [esp + 0x44]
fst st(1)
fadd st(2)
fcomp dword [ebp + 0x18]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410b5a
fld st(0)
fsub st(2)
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 0x45
jne 0x410b60
xor al, al
jmp 0x410b62
mov al, 1
test al, al
jne 0x410b75
fcompp
xor eax, eax
add esp, 0x150
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
push 0x6f9620
push edi
call fcn.004de890
pop ecx
pop ecx
mov ecx, 0x6f9620
push eax
call fcn.004df8e0
lea eax, [esp + 0x108]
push dword [esp + 0x16c]
push 0x6f9620
push eax
call fcn.004de6e0
lea eax, [esp + 0x114]
add esp, 0xc
mov ecx, 0x6f9620
push eax
call fcn.004df8e0
lea ecx, [esp + 0x108]
call fcn.004dfb00
xor esi, esi
xor edi, edi
jmp 0x410c30
mov eax, dword [ebx + 0x34]
fld dword [eax + edi + 0xc]
fstp dword [edi + 0x6f7b8c]
mov eax, dword [ebx + 0x34]
add eax, edi
push eax
lea eax, [esp + 0x64]
push 0x6f95c8
push eax
call fcn.004dff40
fld dword [esp + 0x6c]
fstp dword [edi + 0x6f7b80]
fld dword [esp + 0x70]
fstp dword [edi + 0x6f7b84]
fld dword [esp + 0x74]
fstp dword [edi + 0x6f7b88]
mov edx, dword [ebx + 0x34]
add esp, 0xc
add edx, edi
add edx, 0x10
mov cl, byte [edx]
mov byte [edi + 0x6f7b90], cl
mov al, byte [edx + 1]
mov byte [edi + 0x6f7b91], al
add edi, 0x14
inc esi
movsx eax, word [ebx + 0x28]
cmp esi, eax
jl 0x410bd0
xor edi, edi
xor esi, esi
jmp 0x410cc2
mov eax, dword [ebx + 0x38]
add eax, esi
fcompp
push eax
lea eax, [esp + 0x70]
push 0x6f95c8
push eax
call fcn.004dff40
fld dword [esp + 0x78]
fstp dword [esi + 0x6f8584]
fld dword [esp + 0x7c]
fstp dword [esi + 0x6f8588]
fld dword [esp + 0x80]
fstp dword [esi + 0x6f858c]
mov eax, dword [ebx + 0x38]
add esp, 0xc
add eax, esi
add eax, 0x10
push eax
lea eax, [esp + 0x7c]
push 0x6f95c8
push eax
call fcn.004dff40
fld dword [esp + 0x84]
fstp dword [esi + 0x6f8594]
fld dword [esp + 0x88]
fstp dword [esi + 0x6f8598]
fld dword [esp + 0x8c]
fstp dword [esi + 0x6f859c]
add esi, 0x20
add esp, 0xc
inc edi
movsx eax, byte [ebx + 0x2e]
fldz
fldz
cmp edi, eax
jl 0x410c41
xor edx, edx
xor edi, edi
mov dword [esp + 0x28], 0
jmp 0x410d89
fld dword [edi + 0x6f7b8c]
fstp st(2)
fld dword [edi + 0x6f7b80]
fst st(1)
fadd st(2)
fcomp dword [ebp + 0x10]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410d10
fld st(0)
fsub st(2)
fcomp dword [ebp + 0x1c]
fnstsw ax
test ah, 0x45
jne 0x410d14
xor al, al
jmp 0x410d72
fld dword [edi + 0x6f7b84]
fst st(1)
fadd st(2)
fcomp dword [ebp + 0x14]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410d39
fld st(0)
fsub st(2)
fcomp dword [ebp + 0x20]
fnstsw ax
test ah, 0x45
jne 0x410d40
xor al, al
jmp 0x410d72
fld dword [edi + 0x6f7b88]
fst st(1)
fadd st(2)
fcomp dword [ebp + 0x18]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410d65
fld st(0)
fsub st(2)
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 0x45
jne 0x410d70
xor al, al
jmp 0x410d72
mov al, 1
test al, al
je 0x410d85
mov eax, dword [esp + 0x28]
inc dword [esp + 0x28]
mov dword [eax*4 + 0x6f8788], edx
add edi, 0x14
inc edx
movsx eax, word [ebx + 0x28]
cmp edx, eax
jl 0x410ce3
xor ecx, ecx
mov dword [esp + 0x2c], 0
jmp 0x410db1
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x2c]
mov dword [eax*4 + 0x6f8988], ecx
inc ecx
movsx eax, byte [ebx + 0x2e]
cmp ecx, eax
jl 0x410da1
cmp dword [esp + 0x28], 0
jne 0x410dd6
cmp dword [esp + 0x2c], 0
jne 0x410dd6
fcompp
xor eax, eax
add esp, 0x150
pop ebp
pop edi
pop esi
pop ebx
ret
xor esi, esi
xor edi, edi
mov dword [esp + 0x20], 0
jmp 0x4114b0
mov eax, dword [ebp + 0x34]
fld dword [eax + edi + 0xc]
add eax, edi
push eax
lea eax, [esp + 0x88]
fstp dword [esp + 0x3c]
fcompp
fcompp
fcompp
push 0x6f9620
push eax
call fcn.004dff40
fld dword [esp + 0x90]
fld dword [esp + 0x94]
fld dword [esp + 0x98]
fld dword [esp + 0x90]
fadd dword [esp + 0x44]
add esp, 0xc
fcomp dword [ebx + 0x10]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410e4d
fld st(2)
fsub dword [esp + 0x38]
fcomp dword [ebx + 0x1c]
fnstsw ax
test ah, 0x45
jne 0x410e51
xor al, al
jmp 0x410ea2
fld st(1)
fadd dword [esp + 0x38]
fcomp dword [ebx + 0x14]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410e74
fld st(1)
fsub dword [esp + 0x38]
fcomp dword [ebx + 0x20]
fnstsw ax
test ah, 0x45
jne 0x410e78
xor al, al
jmp 0x410ea2
fld st(0)
fadd dword [esp + 0x38]
fcomp dword [ebx + 0x18]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410e9b
fld st(0)
fsub dword [esp + 0x38]
fcomp dword [ebx + 0x24]
fnstsw ax
test ah, 0x45
jne 0x410ea0
xor al, al
jmp 0x410ea2
mov al, 1
test al, al
je 0x410eb5
mov eax, dword [esp + 0x20]
inc dword [esp + 0x20]
mov dword [eax*4 + 0x6f89c8], esi
add edi, 0x14
inc esi
fldz
fldz
fldz
movsx eax, word [ebp + 0x28]
cmp esi, eax
jl 0x410de7
fld dword [esp + 0x48]
fstp st(1)
fld dword [esp + 0x3c]
fadd st(1)
fstp st(6)
fld dword [esp + 0x3c]
fsub st(1)
fstp st(5)
fld dword [esp + 0x40]
fstp st(3)
mov eax, dword [esp + 0x44]
xor ecx, ecx
fld st(2)
fadd st(1)
fstp st(4)
fld st(2)
mov dword [esp + 0x34], eax
xor edx, edx
fsub st(1)
fstp st(3)
fld dword [esp + 0x34]
fadd st(1)
fstp st(2)
fld dword [esp + 0x34]
fsub st(1)
fstp st(1)
mov dword [esp + 0x14], 0
jmp 0x410f99
mov esi, dword [ebp + 0x3c]
fld st(5)
add esi, edx
fcomp dword [esi]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410f3f
fld st(4)
fcomp dword [esi + 0xc]
fnstsw ax
test ah, 0x45
jne 0x410f43
xor al, al
jmp 0x410f82
fld st(3)
fcomp dword [esi + 4]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410f5e
fld st(2)
fcomp dword [esi + 0x10]
fnstsw ax
test ah, 0x45
jne 0x410f62
xor al, al
jmp 0x410f82
fld st(1)
fcomp dword [esi + 8]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x410f7b
fcom dword [esi + 0x14]
fnstsw ax
test ah, 0x45
jne 0x410f80
xor al, al
jmp 0x410f82
mov al, 1
test al, al
je 0x410f95
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
mov dword [eax*4 + 0x6f8bc8], ecx
add edx, 0x1c
inc ecx
movsx eax, word [ebp + 0x2a]
cmp ecx, eax
jl 0x410f20
fcompp
fcompp
fcompp
push ebp
call fcn.00416760
xor edi, edi
xor ebx, ebx
xor esi, esi
pop ecx
mov dword [esp + 0x1c], 0
jmp 0x410ff9
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp + 0x48]
add eax, esi
add edx, edi
mov ecx, dword [ebp + 0x40]
push edx
push eax
lea eax, [esp + 0x44]
push ecx
push eax
call fcn.00415110
add esp, 0x10
test al, al
je 0x410ff2
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x1c]
mov dword [eax*4 + 0x6f8c48], ebx
add esi, 8
add edi, 0x14
inc ebx
movsx eax, word [ebp + 0x2c]
cmp ebx, eax
jl 0x410fc2
cmp dword [esp + 0x20], 0
jne 0x411023
cmp dword [esp + 0x14], 0
jne 0x411023
cmp dword [esp + 0x1c], 0
jne 0x411023
xor eax, eax
add esp, 0x150
pop ebp
pop edi
pop esi
pop ebx
ret
xor esi, esi
cmp dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
jle 0x411193
mov eax, dword [esp + 0x174]
mov dword [esp + 0x24], eax
xor edi, edi
xor bl, bl
cmp dword [esp + 0x20], 0
mov dword [esp + 0x50], 0x6753c21c
jle 0x4110aa
mov eax, dword [esp + 0x24]
mov dword [esp], eax
lea eax, [eax]
lea eax, [esp + 0x50]
mov ecx, dword [edi*4 + 0x6f89c8]
push eax
mov eax, dword [esi*4 + 0x6f8788]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [eax*4]
lea ecx, [ecx*4]
add eax, 0x6f7b80
add ecx, dword [ebp + 0x34]
push dword [esp + 4]
push ecx
push eax
call fcn.004165b0
add esp, 0x10
test al, al
je 0x4110a3
mov bl, 1
inc edi
cmp edi, dword [esp + 0x20]
jl 0x411060
xor edi, edi
cmp dword [esp + 0x14], 0
jle 0x411108
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, eax
lea eax, [eax]
lea eax, [esp + 0x50]
push eax
mov eax, dword [edi*4 + 0x6f8bc8]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
mov eax, dword [esi*4 + 0x6f8788]
lea eax, [eax + eax*4]
add edx, dword [ebp + 0x3c]
lea eax, [eax*4]
add eax, 0x6f7b80
push dword [esp + 8]
push edx
push eax
call fcn.004159c0
add esp, 0x10
test al, al
je 0x411101
mov bl, 1
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4110c0
xor edi, edi
cmp dword [esp + 0x1c], 0
jle 0x41117b
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
lea eax, [eax]
lea eax, [esp + 0x50]
mov edx, dword [ebp + 0x40]
push eax
mov eax, dword [edi*4 + 0x6f8c48]
mov ecx, eax
lea eax, [eax*8]
lea ecx, [ecx + ecx*4]
add eax, dword [ebp + 0x44]
lea ecx, [ecx*4]
add ecx, dword [ebp + 0x48]
push dword [esp + 0xc]
push ecx
push eax
mov eax, dword [esi*4 + 0x6f8788]
push edx
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, 0x6f7b80
push eax
call fcn.00414470
add esp, 0x18
test al, al
je 0x411174
mov bl, 1
inc edi
cmp edi, dword [esp + 0x1c]
jl 0x411120
test bl, bl
je 0x411188
add dword [esp + 0x24], 0x28
inc dword [esp + 0x30]
inc esi
cmp esi, dword [esp + 0x28]
jl 0x411043
xor edi, edi
cmp dword [esp + 0x30], 0
jle 0x41125f
xor esi, esi
mov ebx, dword [esp + 0x174]
lea eax, [eax]
lea eax, [esp + 0x90]
push ebx
push dword [esp + 0x170]
push eax
call fcn.004dff40
mov eax, dword [esp + 0x180]
add esp, 0xc
fld dword [esp + 0x90]
fstp dword [eax + esi]
mov eax, dword [esp + 0x174]
fld dword [esp + 0x94]
fstp dword [eax + esi + 4]
mov eax, dword [esp + 0x174]
fld dword [esp + 0x98]
fstp dword [eax + esi + 8]
lea eax, [ebx + 0x10]
push eax
lea eax, [esp + 0xa0]
push dword [esp + 0x170]
push eax
call fcn.004e0050
mov eax, dword [esp + 0x180]
inc edi
fld dword [esp + 0xa8]
fstp dword [eax + esi + 0x10]
mov eax, dword [esp + 0x180]
add esp, 0xc
fld dword [esp + 0xa0]
fstp dword [eax + esi + 0x14]
mov eax, dword [esp + 0x174]
add ebx, 0x28
fld dword [esp + 0xa4]
fstp dword [eax + esi + 0x18]
add esi, 0x28
cmp edi, dword [esp + 0x30]
jl 0x4111b0
xor ebx, ebx
cmp dword [esp + 0x2c], 0
jle 0x4113bf
lea eax, [eax]
xor esi, esi
cmp dword [esp + 0x20], 0
mov byte [ebx + 0x6f95a8], 0
jle 0x4112db
mov eax, dword [ebx*4 + 0x6f8988]
mov edx, dword [esi*4 + 0x6f89c8]
mov ecx, eax
lea edx, [edx + edx*4]
imul ecx, ecx, 0x28
lea edx, [edx*4]
lea edi, [eax*4]
shl eax, 5
add edi, dword [esp + 0x17c]
add eax, 0x6f8584
add edx, dword [ebp + 0x34]
push edi
add ecx, dword [esp + 0x17c]
push ecx
push edx
push eax
call fcn.00413de0
add esp, 0x10
test al, al
je 0x4112d4
mov byte [ebx + 0x6f95a8], 1
inc esi
cmp esi, dword [esp + 0x20]
jl 0x411280
xor edi, edi
cmp dword [esp + 0x14], 0
jle 0x41133d
mov eax, dword [ebx*4 + 0x6f8988]
mov edx, dword [edi*4 + 0x6f8bc8]
mov esi, eax
lea ecx, [eax*4]
imul esi, esi, 0x28
add ecx, dword [esp + 0x17c]
shl eax, 5
push ecx
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
add eax, 0x6f8584
add ecx, edx
add ecx, dword [ebp + 0x3c]
add esi, dword [esp + 0x17c]
push esi
push ecx
push eax
call fcn.004133b0
add esp, 0x10
test al, al
je 0x411336
mov byte [ebx + 0x6f95a8], 1
inc edi
cmp edi, dword [esp + 0x14]
jl 0x4112e4
xor esi, esi
cmp dword [esp + 0x1c], 0
jle 0x4113b4
mov eax, dword [ebx*4 + 0x6f8988]
mov ecx, eax
lea edx, [eax*4]
imul ecx, ecx, 0x28
add edx, dword [esp + 0x17c]
shl eax, 5
push 0
push edx
mov edx, dword [esi*4 + 0x6f8c48]
mov edi, edx
lea edx, [edx*8]
lea edi, [edi + edi*4]
add edx, dword [ebp + 0x44]
lea edi, [edi*4]
add eax, 0x6f8584
add edi, dword [ebp + 0x48]
add ecx, dword [esp + 0x180]
push ecx
mov ecx, dword [ebp + 0x40]
push edi
push edx
push ecx
push eax
call fcn.00412790
add esp, 0x1c
test al, al
je 0x4113ad
mov byte [ebx + 0x6f95a8], 1
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x411346
inc ebx
cmp ebx, dword [esp + 0x2c]
jl 0x411270
xor edi, edi
cmp dword [esp + 0x2c], 0
jle 0x41149a
lea eax, [eax]
cmp byte [edi + 0x6f95a8], 0
je 0x41148f
mov eax, dword [edi*4 + 0x6f8988]
imul eax, eax, 0x28
add eax, dword [esp + 0x178]
push eax
lea eax, [esp + 0xac]
push dword [esp + 0x170]
push eax
call fcn.004dff40
mov eax, dword [edi*4 + 0x6f8988]
add esp, 0xc
imul eax, eax, 0x28
fld dword [esp + 0xa8]
add eax, dword [esp + 0x178]
fstp dword [eax]
fld dword [esp + 0xac]
fstp dword [eax + 4]
fld dword [esp + 0xb0]
fstp dword [eax + 8]
mov eax, dword [edi*4 + 0x6f8988]
imul eax, eax, 0x28
add eax, dword [esp + 0x178]
add eax, 0x10
push eax
lea eax, [esp + 0xb8]
push dword [esp + 0x170]
push eax
call fcn.004e0050
mov eax, dword [edi*4 + 0x6f8988]
add esp, 0xc
imul eax, eax, 0x28
fld dword [esp + 0xb4]
add eax, dword [esp + 0x178]
fstp dword [eax + 0x10]
fld dword [esp + 0xb8]
fstp dword [eax + 0x14]
fld dword [esp + 0xbc]
fstp dword [eax + 0x18]
inc edi
cmp edi, dword [esp + 0x2c]
jl 0x4113d0
mov eax, dword [esp + 0x30]
add esp, 0x150
pop ebp
pop edi
pop esi
pop ebx
ret
fldz
fldz
fldz
fldz
jmp 0x410ebf