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

Disassembly:
mov eax, dword fs:[0]
mov ecx, dword [esp + 0x14]
push 0xffffffffffffffff
push 0x53e573
push eax
mov dword fs:[0], esp
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub esp, 0x80
cmp eax, ecx
push ebx
push ebp
push esi
push edi
je 0x4eacce
add eax, 0x20
cmp eax, ecx
jne 0x4ea870
mov eax, dword [esp + 0xa0]
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x58], 0
mov ecx, dword [eax + 0x40]
mov ebp, dword [eax + 0x3c]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x2c], ecx
push eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
call fcn.004fe950
add esp, 8
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x84]
call fcn.004da530
fld dword [0x5828cc]
fmul dword [0x545330]
fld st(0)
fadd dword [esp + 0x8c]
fdiv dword [0x5828cc]
call sub.msvcrt.dll__ftol
fld st(0)
fadd dword [esp + 0x88]
mov esi, eax
fdiv dword [0x5828cc]
call sub.msvcrt.dll__ftol
fld st(0)
fadd dword [esp + 0x84]
mov edi, eax
fdiv dword [0x5828cc]
call sub.msvcrt.dll__ftol
fadd dword [esp + 0x80]
mov ebx, eax
fdiv dword [0x5828cc]
call sub.msvcrt.dll__ftol
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
call fcn.004f4170
mov ecx, dword [esp + 0x70]
cmp ecx, ebp
jge 0x4eaa83
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x28]
cmp edx, ebx
jge 0x4eaa83
mov edi, dword [esp + 0x78]
test edi, edi
jle 0x4eaa83
mov esi, dword [esp + 0x7c]
test esi, esi
jle 0x4eaa83
test ecx, ecx
mov eax, 1
jge 0x4ea98a
xor eax, eax
mov dword [esp + 0x70], eax
test edx, edx
jge 0x4ea996
xor edx, edx
xor eax, eax
mov dword [esp + 0x74], edx
cmp edi, ebp
jle 0x4ea9a0
mov dword [esp + 0x78], ebp
xor eax, eax
cmp esi, ebx
jle 0x4eaa7b
mov esi, ebx
mov dword [esp + 0x7c], esi
mov ebx, edx
cmp edx, esi
mov dword [esp + 0x1c], ebx
jge 0x4eacce
mov edi, dword [esp + 0xb4]
lea edx, [esp + 0x13]
lea ecx, [esp + 0x64]
push edx
mov dword [esp + 0x9c], 0
call fcn.0050e020
mov esi, dword [esp + 0xa8]
mov ecx, dword [0x5828cc]
lea eax, [esp + 0x64]
mov byte [esp + 0x98], 2
push eax
push esi
push ecx
push ebx
call fcn.004ea5a0
add esp, 0x10
test eax, eax
jle 0x4eaca1
test al, 1
jne 0x4eaca1
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], ecx
lea eax, [ecx + 4]
mov ebp, dword [ecx]
mov edx, dword [eax]
cmp ebp, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ebp
jg 0x4eabe5
test edi, edi
je 0x4eab39
mov eax, ebx
mov edx, ebp
and eax, 0xffff
and edx, 0xffff
shl eax, 0x10
or eax, edx
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.00441410
push eax
lea ecx, [esp + 0x4c]
call fcn.0043edd0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4eaa8a
fld dword [eax + 8]
jmp 0x4eab83
test eax, eax
jge 0x4ea9ae
xor al, al
jmp 0x4eacd0
fld dword [0x5828cc]
fmul dword [0x545330]
mov ecx, dword [esp + 0xac]
lea edx, [esp + 0x2c]
push ecx
push esi
push edx
fstp dword [esp + 0x20]
fild dword [esp + 0x28]
fmul dword [0x5828cc]
fadd dword [esp + 0x20]
fild dword [esp + 0x24]
fmul dword [0x5828cc]
fadd dword [esp + 0x20]
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
call fcn.004ea380
fstp dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x20]
mov ecx, edi
push edi
push eax
call fcn.00441410
push eax
lea ecx, [esp + 0x54]
call fcn.0043edd0
push edi
push 0
lea ecx, [esp + 0x5c]
call fcn.0043edd0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jne 0x4eab2e
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x34]
mov dword [esp + 0x34], ecx
push edx
mov ecx, edi
mov dword [esp + 0x3c], 0
call fcn.004f9060
fld dword [esp + 0x14]
add eax, 4
fst dword [eax]
jmp 0x4eab83
fld dword [esp + 0x14]
add eax, 8
fst dword [eax]
jmp 0x4eab83
fld dword [0x5828cc]
fmul dword [0x545330]
mov eax, dword [esp + 0xac]
lea ecx, [esp + 0x3c]
push eax
push esi
push ecx
fstp dword [esp + 0x20]
fild dword [esp + 0x28]
fmul dword [0x5828cc]
fadd dword [esp + 0x20]
fild dword [esp + 0x24]
fmul dword [0x5828cc]
fadd dword [esp + 0x20]
fstp dword [esp + 0x48]
fstp dword [esp + 0x4c]
call fcn.004ea380
add esp, 0xc
fcom dword [0x545374]
fnstsw ax
test ah, 1
jne 0x4eabc5
fdiv dword [0x5828cc]
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, edx
fstp dword [esp + 0x14]
fld dword [0x545374]
je 0x4eabc5
fadd dword [ecx + 0x1c]
fcom dword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4eac00
add ecx, 0x20
cmp ecx, edx
jne 0x4eabb0
fstp st(0)
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0xa8]
inc ebp
mov ecx, dword [eax]
mov dword [esp + 0x18], ebp
cmp ebp, ecx
jle 0x4eaa30
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
add ecx, 8
cmp ecx, edx
mov dword [esp + 0x24], ecx
je 0x4eaca1
add eax, 8
jmp 0x4eaa1c
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
lea esi, [ecx + 4]
cmp edx, eax
fstp st(0)
je 0x4eabc7
push 1
mov ecx, esi
call fcn.004f6e50
mov esi, dword [esi]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esi + eax*4]
mov ecx, dword [ecx + 0x18]
lea esi, [eax + eax*4]
shl esi, 4
add esi, ecx
call dword [sym.imp.msvcrt.dll_rand]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [esp + 0x20], edx
mov edx, dword [esi + 4]
fild dword [esp + 0x20]
mov esi, dword [esi + 8]
mov ecx, edx
cmp ecx, esi
fmul dword [0x546d74]
fstp dword [esp + 0x20]
je 0x4eac7e
fld dword [esp + 0x20]
fcomp dword [ecx + 4]
fnstsw ax
test ah, 1
jne 0x4eac77
fld dword [esp + 0x20]
fcomp dword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x4eac9c
add ecx, 0xc
cmp ecx, esi
jne 0x4eac5b
mov cx, word [edx]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + 0x40]
mov edx, dword [edx + 0x38]
sub eax, ebx
mov eax, dword [edx + eax*4 - 4]
mov byte [eax + ebp*2], cl
jmp 0x4eabc7
mov cx, word [ecx]
jmp 0x4eac81
mov eax, dword [esp + 0x64]
mov dword [esp + 0x98], 0xffffffff
test eax, eax
je 0x4eacbd
push eax
call fcn.005265a0
add esp, 4
mov eax, dword [esp + 0x7c]
inc ebx
cmp ebx, eax
mov dword [esp + 0x1c], ebx
jl 0x4ea9c3
mov al, 1
mov ecx, dword [esp + 0x90]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x8c
ret