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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x10c
mov ebx, dword [esp + 0x134]
fld qword [ebx + 0x10]
fldz
fucompi st(1)
jae 0x49bb40
mov ebp, dword [ebx + 4]
test ebp, ebp
jne 0x49bb30
mov esi, 2
mov ebp, 6
mov dword [esp + 0x3c], 8
mov eax, dword [ebx]
test eax, eax
mov dword [esp + 0x30], eax
je 0x49bb00
mov dword [esp + 0x48], eax
mov edi, 1
mov dword [esp + 0x38], 1
xor ecx, ecx
mov eax, dword [ebx + 8]
test eax, eax
mov edx, eax
mov dword [esp + 0x34], eax
je 0x49baf0
mov edi, edx
mov eax, ecx
xor edx, edx
div edi
mov edx, 1
test eax, eax
cmovne edx, eax
mov eax, ecx
mov dword [esp + 0x38], edx
mov ecx, edx
xor edx, edx
div ecx
lea edi, [eax + 1]
fldz
mov eax, dword [ebx + 0x24]
fucompi st(1)
mov dword [esp + 0x2c], eax
jae 0x49baa0
fld1
fxch st(1)
fucomi st(1)
fstp st(1)
jbe 0x49bb50
fstp st(0)
jmp 0x49baa2
fstp st(0)
mov eax, dword [esp + 0x2c]
mov edx, 0xffffffd6
test eax, eax
jle 0x49bae0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4fb9a0
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edx, 0xffffffd6
jmp 0x49bae0
fstp st(0)
add esp, 0x10c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x34], 0x28
jmp 0x49ba7e
mov edi, 0x29
mov dword [esp + 0x38], 0x30
mov ecx, 0x79e
mov dword [esp + 0x48], 0x32
mov dword [esp + 0x30], 0x7d0
jmp 0x49ba4c
mov dword [esp + 0x3c], ebp
mov esi, 1
jmp 0x49ba2b
fstp st(0)
fld1
jmp 0x49ba0e
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x3c], eax
ja 0x49bbe0
cmp dword [esp + 0x30], eax
jb 0x49bbe4
mov eax, dword [esp + 0x130]
test eax, eax
je 0x49bc00
cmp dword [esp + 0x124], 0xff
ja 0x49bc33
fstp st(0)
mov ebx, dword [0x51a040]
mov edx, 0xffffffba
test ebx, ebx
jle 0x49bae0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x100
mov dword [esp + 4], 0x4fb8c8
mov dword [esp + 0x2c], edx
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edx, dword [esp + 0x2c]
jmp 0x49bae0
fstp st(0)
jmp 0x49bbe6
fstp st(0)
mov eax, dword [esp + 0x2c]
mov edx, 0xffffffd6
test eax, eax
jg 0x49baaf
jmp 0x49bae0
fstp st(0)
mov esi, dword [0x51a040]
mov edx, 0xffffffb8
test esi, esi
jle 0x49bae0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4fb89c
mov dword [esp + 0x2c], edx
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
jmp 0x49bbc1
mov eax, dword [ebx + 0xc]
cmp eax, 1
jbe 0x49c381
fstp qword [esp + 0x40]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00406240
test eax, eax
mov dword [esp + 0x4c], eax
mov edx, 0xffffffc0
fld qword [esp + 0x40]
je 0x49bade
imul edi, esi
lea eax, [esp + 0xa0]
fstp qword [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 0x54], edi
mov esi, edi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
sub esp, 4
lea eax, [esp + 0xb8]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_InitializeConditionVariable]
sub esp, 4
xor eax, eax
mov ecx, 0xc
lea edi, [esp + 0xc8]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xf8], 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x2c]
fld qword [esp + 0x40]
test edi, edi
mov eax, edi
je 0x49c33c
sub eax, 1
cmp edi, 1
mov dword [0x51a040], eax
jle 0x49c346
fstp st(0)
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x4fb9b8
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
cmp dword [esp + 0x3c], ebp
fld qword [esp + 0x40]
jb 0x49c099
mov eax, dword [esp + 0x124]
xor edx, edx
fstp qword [esp + 0x40]
xor esi, esi
mov dword [esp + 0x50], 1
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
cmp dword [esp + 0x2c], 2
jg 0x49c290
mov eax, dword [esp + 0x130]
fld qword [esp + 0x40]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x128]
fstp qword [esp + 8]
mov dword [esp + 4], ebp
mov dword [esp], eax
lea eax, [esp + 0x74]
call fcn.00499cf0
cmp eax, 0xffffff88
ja 0x49c38e
test esi, esi
je 0x49c2c1
jmp 0x49bdb0
fstp st(0)
jmp 0x49bdb0
fstp st(0)
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x48]
jmp 0x49bed7
test esi, esi
je 0x49c132
lea eax, [esp + 0x74]
test edi, edi
mov edx, dword [0x51a040]
sete cl
cmp dword [esp + 0x124], edi
fld qword [esp + 0x40]
mov dword [esi], eax
lea eax, [esp + 0xa0]
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], ebp
fstp qword [esi + 0x20]
mov dword [esi + 0x28], 0
mov dword [esi + 4], eax
mov eax, dword [esp + 0x124]
mov dword [esi + 0x34], edx
mov dword [esi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x28]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x18], eax
setb al
or eax, ecx
test ebp, ebp
sete cl
or al, cl
jne 0x49bf21
cmp ebp, edi
ja 0x49bf21
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
lea eax, [esp + 0xa0]
add dword [esp + 0xbc], 1
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x49c280
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], esi
mov dword [esp + 4], fcn.0049b490
mov dword [esp], eax
call fcn.00406620
mov esi, dword [esp + 0x2c]
cmp esi, 1
jle 0x49bec4
call sub.msvcrt.dll_clock
sub eax, dword [0x51a03c]
cmp eax, 0x96
jg 0x49bf60
cmp esi, 3
jg 0x49bf60
add dword [esp + 0x50], 1
add edi, dword [esp + 0x38]
cmp dword [esp + 0x30], edi
jb 0x49bfb0
mov dword [esp], 0x40
call sub.msvcrt.dll_malloc
cmp dword [esp + 0x2c], 2
mov esi, eax
jle 0x49bdc0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x4fba04
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x49bdc0
test edx, edx
jle 0x49bf4d
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4fb880
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov dword [esp], esi
call fcn.004f1ae0
jmp 0x49bec9
call sub.msvcrt.dll_clock
mov dword [0x51a03c], eax
xor edx, edx
mov dword [esp + 4], 0x4fb5ec
imul eax, dword [esp + 0x50], 0x64
div dword [esp + 0x54]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x49bec4
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_SleepConditionVariableCS]
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x49c001
lea eax, [esp + 0xa0]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
lea eax, [esp + 0xb8]
mov dword [esp], eax
call esi
sub esp, 0xc
mov edx, dword [esp + 0xbc]
test edx, edx
jne 0x49bfd4
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x49c032
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x94]
test eax, eax
je 0x49c050
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x49c06e
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x98], 0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x49c07e
mov dword [esp], eax
call fcn.004f1ae0
add ebp, 2
cmp dword [esp + 0x3c], ebp
mov esi, 1
jae 0x49bd55
cmp dword [esp + 0x2c], 1
jle 0x49c0cb
jmp 0x49c09b
fstp st(0)
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x4fb5f9
mov dword [esp + 4], 0x4fb5fa
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
mov edx, dword [esp + 0xf8]
cmp edx, 0xffffff88
ja 0x49c359
mov eax, dword [esp + 0xc0]
mov ecx, 0xc
mov edi, ebx
lea esi, [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 8], ebp
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
lea eax, [esp + 0xa0]
mov dword [esp], eax
call fcn.0049abe0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004062c0
mov edx, ebp
jmp 0x49bae0
mov ebp, dword [esp + 0x2c]
test ebp, ebp
jle 0x49c162
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4fba0c
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
sub esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_SleepConditionVariableCS]
mov edi, dword [esp + 0xbc]
test edi, edi
je 0x49c1bd
lea esi, [esi]
lea edi, [edi]
lea eax, [esp + 0xa0]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
lea eax, [esp + 0xb8]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov esi, dword [esp + 0xbc]
test esi, esi
jne 0x49c190
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
sub esp, 4
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x49c1e3
mov dword [esp], eax
call fcn.004f1ae0
lea eax, [esp + 0xa0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
sub esp, 4
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x49c214
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x94]
test eax, eax
je 0x49c232
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x49c250
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x98], 0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x49c268
mov dword [esp], eax
call fcn.004f1ae0
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004062c0
mov edx, 0xffffffc0
jmp 0x49bae0
mov dword [esp], esi
call fcn.0049b490
jmp 0x49be9c
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x4fb9e0
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x49bd60
mov eax, dword [esp + 0x90]
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], eax
fild qword [esp + 0x60]
fild qword [esp + 0x58]
fdivp st(1)
fld dword [0x4fba30]
fxch st(1)
fucomi st(1)
fstp st(1)
jae 0x49bda0
mov edx, dword [esp + 0x2c]
test edx, edx
jle 0x49bda4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x124]
fstp qword [esp + 0x10]
mov dword [esp + 4], 0x4fb768
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
jmp 0x49bdb0
mov dword [0x51a040], 0
cmp dword [esp + 0x3c], ebp
mov edx, dword [esp + 0xf8]
jae 0x49bd36
fstp st(0)
lea eax, [esp + 0xa0]
mov dword [esp + 0x2c], edx
mov dword [esp], eax
call fcn.0049abe0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004062c0
mov edx, dword [esp + 0x2c]
jmp 0x49bae0
mov dword [esp + 0x4c], 0
jmp 0x49bc68
mov ecx, dword [esp + 0x2c]
mov edi, eax
test ecx, ecx
jle 0x49c3c0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4fb9e6
add eax, 0x40
mov dword [esp], eax
call fcn.00499670
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fflush
lea eax, [esp + 0xa0]
mov dword [esp], eax
call fcn.0049abe0
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004062c0
mov edx, edi
jmp 0x49bae0