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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov esi, 1
cmp edi, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], ebx
je 0x4ff6d5
mov eax, dword [edi]
test ah, 0x28
jne 0x4ff6d5
cmp dword [0x584ce8], ebx
je 0x4fef97
mov edx, dword [0x5835a0]
mov ecx, 3
cmp edx, ecx
jne 0x4fef97
cmp dword [0x583aec], ecx
je 0x4ff6d5
cmp dword [0x584fa8], ebx
je 0x4fefb1
mov ecx, dword [0x56c658]
mov eax, ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x30], eax
jmp 0x4fefde
test al, 1
je 0x4fefc7
mov ecx, dword [0x56c5f4]
mov eax, ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x30], eax
jmp 0x4fefde
push edi
call fcn.004ffc80
mov ecx, dword [0x56c638]
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x58], ecx
cmp dword [edi + 0x20], ebx
je 0x4ff049
mov esi, dword [0x5838d8]
mov edx, dword [0x584ce8]
shr esi, 0xa
and esi, 1
cmp edx, ebx
je 0x4ff008
mov edx, dword [0x5838d8]
or dh, 4
mov dword [0x5838d8], edx
push ecx
push eax
push edi
call fcn.004ffa50
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4ff02a
cmp dword [0x580074], edi
jne 0x4ff02a
push edi
call fcn.004fee00
add esp, 4
mov eax, dword [0x5838d8]
and esi, 1
shl esi, 0xa
and ah, 0xfb
or esi, eax
mov eax, ebx
mov dword [0x5838d8], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x44]
lea edx, [esp + 0x28]
push ecx
mov eax, dword [edi]
push edx
lea ecx, [esp + 0x44]
lea edx, [esp + 0x6c]
push ecx
mov ecx, dword [edi + 0x64]
push edx
mov edx, dword [edi + 0x60]
push esi
push ecx
mov ecx, dword [edi + 0x5c]
push edx
mov edx, dword [edi + 0x58]
push ecx
mov ecx, dword [edi + 0x18]
and ah, 0xf7
push edx
movsx edx, word [edi + 4]
push ecx
mov dword [edi], eax
movsx ecx, word [edi + 0xc]
shr eax, 0x14
push edx
and eax, esi
push ecx
push eax
push edi
call fcn.004ff6e0
add esp, 0x38
test eax, eax
je 0x4ff09f
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x34]
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x30]
push eax
mov eax, dword [edi + 0x74]
lea edx, [esp + 0x74]
push ecx
mov ecx, dword [edi + 0x70]
push edx
mov edx, dword [edi + 0x6c]
push ebx
push eax
mov eax, dword [edi + 0x68]
push ecx
mov ecx, dword [edi + 0x1c]
push edx
push eax
movsx edx, word [edi + 6]
movsx eax, word [edi + 0xe]
push ecx
mov ecx, dword [edi]
shr ecx, 0x15
push edx
and ecx, esi
push eax
push ecx
push edi
call fcn.004ff6e0
add esp, 0x38
test eax, eax
je 0x4ff0f0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
lea edx, [esp + 0x84]
push 0xec
push edx
mov dword [esp + 0x80], ebx
call fcn.005471fe
mov eax, dword [0x5838d8]
add esp, 0xc
shr eax, 0xa
and eax, esi
mov dword [esp + 0x7c], eax
mov eax, dword [0x584ce8]
cmp eax, ebx
je 0x4ff131
mov eax, dword [0x5838d8]
or ah, 4
mov dword [0x5838d8], eax
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
cmp eax, 1
mov eax, dword [esp + 0x6c]
je 0x4ff146
mov eax, dword [esp + 0x64]
xor esi, esi
mov dword [esp + 0x20], eax
test eax, eax
mov dword [esp + 0x50], esi
jle 0x4ff5c0
mov eax, dword [esp + 0x10]
mov edi, 1
xor ecx, ecx
xor ebx, ebx
cmp eax, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x5c], ecx
jne 0x4ff1a8
mov eax, dword [ebp + 8]
test dword [eax], 0x200000
je 0x4ff185
mov dword [esp + 0xc], ecx
jmp 0x4ff219
cmp esi, ecx
jne 0x4ff194
mov edi, 2
mov dword [esp + 0xc], edi
jmp 0x4ff1dd
mov edx, dword [esp + 0x20]
xor eax, eax
dec edx
cmp esi, edx
setne al
dec eax
and eax, 8
mov edi, eax
jmp 0x4ff1d5
mov edx, dword [ebp + 8]
test dword [edx], 0x100000
je 0x4ff1b9
mov dword [esp + 0xc], ecx
jmp 0x4ff212
cmp esi, ecx
jne 0x4ff1c3
mov dword [esp + 0xc], edi
jmp 0x4ff1dd
mov eax, dword [esp + 0x20]
xor edx, edx
dec eax
cmp esi, eax
setne dl
dec edx
and edx, 4
mov edi, edx
cmp edi, ecx
mov dword [esp + 0xc], edi
je 0x4ff212
mov edx, dword [ebp + 8]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x48]
push eax
push ecx
push edi
push edx
call fcn.004ff970
add esp, 0x10
test eax, eax
je 0x4ff200
xor ecx, ecx
mov dword [esp + 0xc], ecx
jmp 0x4ff212
mov eax, dword [esp + 0x48]
xor ecx, ecx
cmp edi, ecx
mov dword [esp + 0x18], eax
jne 0x4ff2cd
cmp dword [esp + 0x10], 1
jne 0x4ff271
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x74]
push edx
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [ebp + 8]
mov edx, dword [eax + esi*8 + 4]
mov eax, dword [eax + esi*8]
push edx
push eax
push 1
push ecx
call fcn.00507060
add esp, 0x20
cmp eax, 0xffffffff
je 0x4ff61e
test eax, eax
jne 0x4ff263
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x60], edx
jmp 0x4ff2c9
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
jmp 0x4ff2c9
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x40]
push edx
push eax
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x80]
push edx
push eax
mov eax, dword [esp + 0x38]
mov edx, dword [eax + esi*8 + 4]
mov eax, dword [eax + esi*8]
push edx
push eax
push ecx
mov ecx, dword [ebp + 8]
push ecx
call fcn.00507060
add esp, 0x20
cmp eax, 0xffffffff
je 0x4ff61e
test eax, eax
jne 0x4ff2bd
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x68], edx
jmp 0x4ff2c9
mov eax, dword [esp + 0x34]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
xor edi, edi
test eax, eax
mov dword [esp + 0x1c], edi
jle 0x4ff54d
mov eax, dword [esp + 0xc]
jmp 0x4ff2ed
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x10], 1
jne 0x4ff326
test eax, eax
je 0x4ff30f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
fld qword [ecx + edi*8]
fstp qword [esp + 0x80]
fld qword [eax + esi*8]
jmp 0x4ff348
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
fld qword [edx + edi*8]
fstp qword [esp + 0x80]
fld qword [eax + esi*8]
jmp 0x4ff348
mov ecx, dword [esp + 0x28]
test eax, eax
fld qword [ecx + esi*8]
fstp qword [esp + 0x80]
je 0x4ff341
mov edx, dword [esp + 0x14]
fld qword [edx + edi*8]
jmp 0x4ff348
mov eax, dword [esp + 0x68]
fld qword [eax + edi*8]
mov esi, dword [ebp + 8]
push 8
fstp qword [esp + 0x8c]
lea ecx, [esp + 0x84]
push esi
push ecx
call fcn.004beb30
add esp, 0xc
test eax, eax
jne 0x4ff616
test edi, edi
jle 0x4ff39c
mov dx, word [esp + 0x254]
cmp dx, word [esp + 0x168]
je 0x4ff39c
lea eax, [esp + 0x80]
push esi
lea ecx, [esp + 0x170]
push eax
push ecx
call fcn.00506150
add esp, 0xc
xor esi, esi
test edi, edi
jle 0x4ff3b3
cmp word [esp + 0x254], si
jne 0x4ff3b3
lea esi, [esp + 0x16c]
cmp word [esp + 0x168], 0
jne 0x4ff3d9
cmp word [esp + 0x254], 0
lea esi, [esp + 0x80]
je 0x4ff3d9
test edi, edi
jle 0x4ff3d9
dec edi
mov dword [esp + 0x1c], edi
test esi, esi
je 0x4ff512
mov eax, dword [esp + 0xc]
test eax, eax
mov eax, dword [esp + 0x58]
jne 0x4ff3f1
mov eax, dword [esp + 0x30]
push eax
call fcn.004b2890
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
push edx
push eax
call fcn.00457540
add esp, 0xc
test ebx, ebx
jne 0x4ff47c
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
push ecx
mov ecx, dword [esi + 0x10]
push edx
push eax
push ecx
call fcn.004569e0
add esp, 0x10
push 0x24
push 1
call fcn.00547150
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4ff61e
mov eax, dword [esp + 0x18]
push 0xc
push eax
call fcn.00547150
add esp, 8
mov dword [esp + 0x54], eax
test eax, eax
je 0x4ff61e
mov ecx, dword [esp + 0x18]
push 4
push ecx
call fcn.00547150
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
je 0x4ff61e
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4ff49a
mov dword [eax + 0x1c], ebx
jmp 0x4ff4a0
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push edx
mov edx, dword [esi + 0x10]
push eax
push ecx
push edx
call fcn.00456b90
mov eax, dword [esp + 0x64]
add esp, 0x10
jmp 0x4ff4ce
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], ebx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov dx, word [esp + 0x10]
mov dword [ebx], eax
mov dword [ebx + 0x20], ecx
mov cx, word [esp + 0xc]
fld qword [esi]
mov dword [esp + 0x74], ebx
fstp dword [ebx + 0xc]
fld qword [esi + 8]
mov word [ebx + 6], dx
mov word [ebx + 8], cx
fstp dword [ebx + 0x14]
fld qword [esi + 0x10]
fstp dword [eax]
fld qword [esi + 0x18]
fstp dword [eax + 4]
fld qword [esi + 0x20]
fstp dword [eax + 8]
add eax, 0xc
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
cmp eax, 1
jne 0x4ff4f3
fld qword [esi]
jmp 0x4ff4f6
fld qword [esi + 8]
mov eax, dword [esp + 0x38]
fstp dword [eax]
add eax, 4
inc word [ebx + 4]
fld qword [esi]
mov dword [esp + 0x38], eax
fstp dword [ebx + 0x10]
fld qword [esi + 8]
fstp dword [ebx + 0x18]
cmp word [esp + 0x168], 0
je 0x4ff51f
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov ecx, 0x3b
lea esi, [esp + 0x80]
lea edi, [esp + 0x16c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x50]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4ff2e5
call fcn.004b2a10
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4ff572
mov edx, dword [esp + 0x48]
push 8
push edx
push eax
call fcn.0054714a
add esp, 0xc
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4ff58a
mov ecx, dword [esp + 0x70]
push 8
push ecx
push eax
call fcn.0054714a
add esp, 0xc
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4ff5a2
mov edx, dword [esp + 0x78]
push 8
push edx
push eax
call fcn.0054714a
add esp, 0xc
call fcn.004b38d0
test eax, eax
jne 0x4ff6b3
mov eax, dword [esp + 0x20]
inc esi
cmp esi, eax
mov dword [esp + 0x50], esi
jl 0x4ff158
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 2
mov dword [esp + 0x10], eax
jle 0x4ff135
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4ff600
push esi
call fcn.00506eb0
add esp, 4
test eax, eax
jne 0x4ff61e
mov eax, dword [esi]
or eax, 0x2000000
mov dword [esi], eax
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4ff600
mov eax, dword [esi]
or ah, 8
mov dword [esi], eax
mov eax, dword [0x56c638]
push eax
call fcn.004b2890
push 0
push esi
call fcn.004ff9d0
add esp, 0xc
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
push 8
push ecx
push edx
call fcn.0054714a
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
push 8
push eax
push ecx
call fcn.0054714a
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
push 8
push edx
push eax
call fcn.0054714a
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x70]
push 8
push ecx
push edx
call fcn.0054714a
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
push 8
push eax
push ecx
call fcn.0054714a
mov eax, dword [esp + 0xb8]
mov edx, dword [0x5838d8]
mov esi, dword [esp + 0x60]
and eax, 1
shl eax, 0xa
and dh, 0xfb
add esp, 0x3c
or eax, edx
test esi, esi
mov dword [0x5838d8], eax
je 0x4ff6c0
mov eax, dword [ebp + 8]
push eax
call fcn.004feee0
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x24], 1
jmp 0x4ff61e
mov ecx, dword [ebp + 8]
push ecx
call fcn.005037e0
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret