Function at 0x4caa10
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x78
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0xff
push str.levels_b30_b30
push 0x6b4741
call fcn.005c8ba0
add esp, 0xc
lea ecx, [esp + 0x28]
xor ebx, ebx
push ecx
mov byte [0x6b4840], bl
mov byte [0x6b471f], 1
mov word [0x6b471c], 0xffff
mov byte [0x6b4731], 1
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ebx
push 0x3e8
push edx
push eax
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov dword [0x6b472c], eax
mov byte [0x6b46e1], bl
call fcn.004c9720
call fcn.004dad80
call fcn.004ada00
call fcn.0045b550
call fcn.00498200
push str.banned.txt
push 0x647768
push 0x60d1c4
push 0x6b72d0
call fcn.005c87a3
add esp, 0x10
mov dword [0x653404], 0x44
mov dword [0x653408], ebx
mov dword [0x65340c], ebx
call fcn.004e68b0
mov dword [0x653410], 8
mov dword [0x653414], ebx
mov dword [0x653418], ebx
call fcn.004c97e0
call fcn.004cd1d0
call fcn.004cd330
call fcn.004cd080
cmp dword [0x6b46a0], ebx
mov dl, byte [0x6b46ac]
mov byte [0x6c04b6], dl
jne 0x4cab6b
cmp dword [0x6b46b0], ebx
jne 0x4cab6b
cmp dword [0x6b46bc], ebx
jne 0x4cab6b
cmp dword [0x6b8378], ebx
jne 0x4cab6b
push str.bungie.bik
call fcn.0043ed20
add esp, 4
push str.gearbox.bik
call fcn.0043ed20
add esp, 4
push str.mgs.bik
call fcn.0043ed20
add esp, 4
mov byte [0x631b60], bl
call fcn.004ca280
mov dword [esp + 0x24], eax
cmp dword [0x6b8374], ebx
je 0x4cab91
mov dword [esp + 0x20], 0x7e
wait
fninit
fldcw word [esp + 0x20]
cmp word [0x6b471c], 0xffff
je 0x4caba0
call fcn.004ccef0
cmp byte [0x6b4717], bl
je 0x4cabdb
mov eax, dword [0x68cca8]
cmp byte [eax + 2], bl
jne 0x4cabdb
mov ax, word [0x6b4738]
mov cx, ax
inc ax
cmp cx, 0x5a
mov word [0x6b4738], ax
jle 0x4cabdb
mov byte [0x6b4717], bl
mov word [0x6b4738], bx
call fcn.0053b650
cmp byte [0x6b4716], bl
je 0x4cabe8
call fcn.004ccf60
cmp byte [0x6b4718], bl
je 0x4cac32
mov edx, dword [0x68cca8]
cmp byte [edx + 2], bl
jne 0x4cac32
mov eax, dword [0x68c774]
cmp byte [eax + 9], bl
jne 0x4cac32
mov ax, word [0x6b473a]
mov cx, ax
inc ax
cmp cx, 0x5a
mov word [0x6b473a], ax
jle 0x4cac32
call fcn.00476c60
test al, al
je 0x4cac32
mov byte [0x6b4718], bl
mov word [0x6b473a], bx
cmp byte [0x6b4707], bl
je 0x4cac75
call dword [0x6396b4]
push 1
mov byte [0x6b4731], bl
mov byte [0x6b4732], bl
call fcn.0053bbc0
add esp, 4
test al, al
setne dl
mov byte [0x67dcd1], dl
xor dl, dl
mov byte [0x6b4732], 1
call fcn.004ad410
mov byte [0x6b4707], bl
cmp byte [0x6b4701], bl
je 0x4cac82
call fcn.004ccb00
cmp byte [0x6b4702], bl
je 0x4cac9f
call fcn.0053b650
mov dword [0x6b3f60], 0x1e
mov byte [0x6b4702], bl
cmp byte [0x6b4703], bl
je 0x4cacd4
cmp byte [0x67def8], bl
jne 0x4cacce
mov eax, dword [0x68c774]
cmp byte [eax + 0xa], bl
je 0x4cacce
call fcn.0053b650
mov dword [0x6b3f60], 0x1e
mov byte [0x6b4702], bl
mov byte [0x6b4703], bl
cmp byte [0x6b4700], bl
je 0x4cace1
call fcn.004cd010
cmp byte [0x6b4719], bl
je 0x4cad27
mov ecx, dword [0x67dcc0]
push ecx
push str.core.bin
mov edi, 0x440000
call fcn.0053c890
add esp, 8
test al, al
push str.core.bin
je 0x4cad12
push str.saved__s
jmp 0x4cad17
push str.error_writing__s
xor al, al
call fcn.004c9c10
add esp, 8
mov byte [0x6b4719], bl
cmp byte [0x6b471a], bl
je 0x4cad3f
mov eax, str.core.bin
call fcn.0053b8b0
mov byte [0x6b471a], bl
cmp byte [0x6b471f], bl
je 0x4cad4c
call fcn.004cbdc0
cmp byte [0x6b4720], bl
je 0x4cad5a
mov byte [0x6b4720], bl
cmp byte [0x6b4734], bl
je 0x4cad67
call fcn.004ccd70
cmp byte [0x6b473c], bl
je 0x4cada7
cmp byte [0x647298], bl
je 0x4cad93
lea eax, [esp + 0x20]
call fcn.00443f60
cmp ax, 1
jne 0x4cad8b
call fcn.00444000
cmp byte [0x647298], bl
jne 0x4cada7
push ebx
mov eax, 0x6b4941
call fcn.00443e20
add esp, 4
mov byte [0x6b473c], bl
cmp byte [0x6b4a41], bl
je 0x4cadb4
call fcn.004cb9f0
movsx ebp, word [0x6b46e8]
call fcn.00493660
cmp dword [0x6b46a0], ebx
jne 0x4cadcd
call fcn.0048e190
call fcn.00545220
cmp byte [0x6b4723], bl
jne 0x4cb67e
cmp byte [0x6adc40], bl
je 0x4cae51
mov esi, dword [0x6adc48]
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push ebx
push 0x3e8
push eax
push ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov dword [0x6adc48], eax
cmp dword [0x6adc44], esi
jae 0x4cae51
cmp byte [0x6adc40], bl
je 0x4cae51
xor edx, edx
mov dword [esp + 0x2a], edx
xor eax, eax
lea edi, [esp + 0x28]
mov word [esp + 0x28], bx
mov word [esp + 0x2e], dx
call fcn.00495230
cmp ebp, 2
jne 0x4cae69
call fcn.0057b530
cmp dword [0x63ad04], 0xffffffff
je 0x4cae69
call fcn.005c09a0
call fcn.004418d0
cmp ebp, 1
je 0x4cae9d
cmp ebp, 2
je 0x4cae9d
cmp byte [0x6b3f89], 1
jne 0x4caecd
mov eax, dword [0x6b3f54]
cmp eax, ebx
je 0x4caecd
mov esi, dword [eax + 4]
mov edi, str.the_main_menu
mov ecx, 0xe
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4caecd
mov eax, dword [0x624a94]
cmp dword [0x6b4cb0], eax
je 0x4caeb9
mov esi, 0x6b4ca8
mov dword [0x6b4cb0], eax
call fcn.004db480
mov eax, 0x6b4ca8
call fcn.004db8d0
mov esi, 0x6b4ca8
call fcn.004db940
cmp byte [0x6bd094], bl
je 0x4caee3
cmp ebp, 1
je 0x4caee3
cmp ebp, 2
jne 0x4cb582
cmp ebp, 1
mov byte [esp + 0x17], 1
jne 0x4caf4c
call fcn.004e1380
test al, al
jne 0x4caf9d
mov ecx, dword [0x6b72a0]
cmp word [ecx + 0xf1c], 8
jne 0x4caf2b
cmp word [0x6b3f64], 0xffff
jne 0x4caf3e
mov word [0x6b3f64], 4
mov byte [0x6b72a6], 1
call fcn.004adc50
jmp 0x4caf9d
cmp word [0x6b3f64], 0xffff
jne 0x4caf3e
mov word [0x6b3f64], 6
mov byte [0x6b72a6], 1
call fcn.004adc50
jmp 0x4caf9d
cmp ebp, 2
jne 0x4caf94
mov edx, dword [0x6b729c]
mov al, byte [edx + 6]
shr al, 2
test al, 1
jne 0x4caf6a
call fcn.004e1380
cmp al, 1
jne 0x4caf73
call fcn.004e1240
cmp al, 1
je 0x4caf9d
cmp word [0x6b3f64], 0xffff
jne 0x4caf86
mov word [0x6b3f64], 1
mov byte [0x6b72a6], 1
call fcn.004adc50
jmp 0x4caf9d
cmp ebp, 3
je 0x4cb67e
call fcn.004cd390
call fcn.0049a340
call fcn.0049af20
cmp byte [0x6ad4a8], bl
je 0x4cb10c
cmp byte [0x651e88], bl
jne 0x4cb10c
mov eax, dword [0x68cca8]
cmp byte [eax], bl
je 0x4cafeb
cmp byte [eax + 1], bl
jne 0x4cafd7
cmp byte [eax + 2], bl
je 0x4cafeb
cmp byte [eax + 2], bl
jne 0x4cafeb
mov ecx, dword [0x68c774]
cmp byte [ecx + 9], bl
jne 0x4cb0d0
cmp dword [0x6b4724], ebx
jle 0x4cb14b
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea edx, [esp + 0x38]
push edx
call edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
push ebx
push 0x3e8
push eax
push ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov esi, dword [0x6b4724]
mov edx, dword [0x6b472c]
sub esi, eax
add esi, edx
lea edx, [esp + 0x40]
push edx
call edi
cmp esi, ebx
jg 0x4cb146
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push ebx
push 0x3e8
push eax
push ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov edx, dword [0x6b4728]
sub edx, eax
add edx, 0x2710
test edx, edx
jg 0x4cb146
cmp byte [0x6b3f89], bl
je 0x4cb0b3
mov byte [0x6b471f], bl
mov byte [0x6b4721], 1
mov byte [0x6b4701], 1
call fcn.00449da0
jmp 0x4cb141
mov word [0x6b471c], 0xffff
mov byte [0x6b4704], bl
mov byte [0x6b471f], 1
call fcn.00449da0
jmp 0x4cb141
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ebx
push 0x3e8
push ecx
push edx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov dword [0x6b4728], eax
jmp 0x4cb146
lea edx, [esp + 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push ebx
push 0x3e8
push eax
push ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov dword [0x6b472c], eax
mov eax, dword [0x68cca8]
cmp byte [eax], bl
je 0x4cb530
cmp byte [eax + 1], bl
jne 0x4cb161
cmp byte [eax + 2], bl
je 0x4cb530
cmp byte [0x64dd64], bl
je 0x4cb185
call fcn.00499d00
call fcn.00499660
cmp byte [0x651e88], bl
jne 0x4cb180
call fcn.00499760
call fcn.00499dc0
call fcn.004c9a10
test al, al
je 0x4cb19b
cmp word [0x6b46e8], bx
je 0x4cb3ea
movzx edx, byte [0x6b4731]
mov dword [esp + 0x20], edx
mov ebp, 1
fild dword [esp + 0x20]
push ebp
fmul dword [0x6b46e4]
fstp dword [esp + 0x24]
mov edi, dword [esp + 0x24]
push edi
call fcn.00473970
mov esi, eax
xor eax, eax
mov dword [0x692ddc], eax
mov dword [0x692de0], eax
mov dword [0x692de4], eax
mov dword [0x692de8], eax
mov dword [0x692dec], eax
push esi
mov dword [0x692df0], eax
mov dword [0x692df4], eax
push edi
push ebx
mov dword [0x692e04], ebx
mov dword [0x692df8], eax
mov dword [0x692dfc], esi
call fcn.00474910
movsx eax, word [0x6b46e8]
add esp, 0x14
dec eax
je 0x4cb225
dec eax
jne 0x4cb260
mov ecx, dword [0x6b729c]
mov dl, byte [ecx + 6]
shr dl, 2
test dl, 1
jne 0x4cb260
call fcn.004adde0
xor eax, eax
mov al, byte [0x6b46e0]
push eax
push esi
call fcn.004e1460
add esp, 8
test al, al
jne 0x4cb260
or esi, 0xffffffff
cmp word [0x6b3f64], si
jne 0x4cb252
mov word [0x6b3f64], bp
mov byte [0x6b72a6], 1
call fcn.004adc50
jmp 0x4cb263
or esi, 0xffffffff
push edi
call fcn.00473a30
add esp, 4
cmp word [0x6b46e8], bp
jne 0x4cb364
cmp dword [0x6ab248], ebx
je 0x4cb364
mov eax, dword [0x8154e0]
mov dword [esp + 0x78], eax
xor eax, 0x69746572
lea edi, [esp + 0x78]
mov word [esp + 0x7c], bx
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], eax
call fcn.004d39d0
cmp eax, ebx
je 0x4cb364
cmp word [eax + 2], si
jne 0x4cb2cf
lea edi, [esp + 0x78]
call fcn.004d39d0
cmp eax, ebx
jne 0x4cb2b7
jmp 0x4cb364
mov eax, dword [eax + 0x34]
cmp eax, esi
je 0x4cb364
mov ecx, dword [0x6b72a0]
mov ecx, dword [ecx + 0xf88]
cmp ecx, ebx
je 0x4cb364
cmp dword [ecx + 8], ebx
je 0x4cb364
mov ecx, dword [ecx + 8]
and eax, 0xffff
lea edx, [eax + eax*2]
mov eax, dword [0x7fb2d0]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + edx*4 + 8]
fld dword [eax + 0x6c]
mov edx, dword [ecx + 4]
sub esp, 0x38
fstp qword [esp + 0x30]
fld dword [eax + 0x68]
fstp qword [esp + 0x28]
fld dword [eax + 0x27c]
fstp qword [esp + 0x20]
fld dword [eax + 0x278]
fstp qword [esp + 0x18]
fld dword [eax + 0x64]
fstp qword [esp + 0x10]
fld dword [eax + 0x60]
fstp qword [esp + 8]
fld dword [eax + 0x5c]
mov eax, dword [ecx]
mov ecx, dword [0x68cca8]
fstp qword [esp]
push edx
mov edx, dword [ecx + 0xc]
push eax
push edx
push str.__d_:_Update___d_____d__:____f____f____f_______f____f_______f____f___n
mov eax, 0x10
xor ecx, ecx
call fcn.004e9970
add esp, 0x48
cmp byte [0x6bd094], bl
mov al, byte [0x6b4731]
mov byte [esp + 0x17], bl
jne 0x4cb386
cmp byte [0x6b471e], bl
jne 0x4cb381
cmp al, bl
je 0x4cb386
mov byte [esp + 0x17], 1
movzx eax, al
mov dword [esp + 0x20], eax
push ecx
fild dword [esp + 0x24]
fmul dword [0x6b46e4]
fstp dword [esp]
call fcn.00446130
add esp, 4
call fcn.004460e0
movzx ecx, byte [0x6b4731]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
push eax
fmul dword [0x6b46e4]
push ecx
fstp dword [esp]
call fcn.004483c0
movzx edx, byte [0x6b4731]
mov dword [esp + 0x28], edx
add esp, 4
fild dword [esp + 0x24]
fmul dword [0x6b46e4]
fstp dword [esp]
call fcn.00460b70
add esp, 4
cmp byte [0x6b4704], bl
je 0x4cb3f7
call fcn.004cce00
mov eax, dword [0x624aa0]
cmp eax, 0xffffffff
je 0x4cb41a
cmp eax, 0x14
jg 0x4cb410
mov eax, 0x14
mov dword [0x624aa0], eax
cmp dword [esp + 0x24], eax
jb 0x4cb41a
mov byte [esp + 0x17], bl
cmp dword [0x6b46a0], ebx
je 0x4cb442
mov eax, dword [0x68cca8]
mov eax, dword [eax + 0xc]
cmp eax, dword [0x6b4b28]
je 0x4cb582
mov dword [0x6b4b28], eax
call fcn.004ca330
jmp 0x4cb44c
cmp byte [esp + 0x17], bl
je 0x4cb554
cmp byte [0x6b4a70], bl
jne 0x4cb582
lea ecx, [esp + 0x58]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0x68cca8]
cmp byte [eax + 2], bl
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
jne 0x4cb500
cmp byte [0x651e88], bl
jne 0x4cb500
mov edx, dword [eax + 0x1c]
mov ebp, dword [0x6b46d8]
mov eax, edi
sub eax, ebp
mov dword [esp + 0x1c], edx
mov edx, dword [0x6b46dc]
mov ecx, esi
sbb ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
fild qword [esp + 0x60]
mov eax, dword [0x6b46a0]
cmp eax, ebx
fild qword [0x647760]
fdivp st(1)
fst dword [esp + 0x18]
je 0x4cb4c9
fstp st(0)
fld dword [0x61222c]
fst dword [esp + 0x18]
cmp word [0x6b46e8], bx
jne 0x4cb4e9
fcomp dword [0x61222c]
fnstsw ax
test ah, 0x41
jne 0x4cb510
mov dword [esp + 0x18], 0x3d088889
jmp 0x4cb510
fcomp dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x4cb510
mov dword [esp + 0x18], 0x3f800000
jmp 0x4cb510
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.004cc5c0
add esp, 8
mov dword [0x6b46d8], edi
mov dword [0x6b46dc], esi
jmp 0x4cb545
cmp dword [0x6b46a0], ebx
jne 0x4cb545
cmp byte [0x6bd094], bl
jne 0x4cb545
call fcn.004cc280
cmp byte [0x6b4a70], bl
jne 0x4cb582
call fcn.004cc8a0
jmp 0x4cb582
mov esi, dword [0x637d10]
mov edx, dword [0x637d14]
add esi, 1
adc edx, ebx
push 1
mov ebx, 0x75dfc0
mov dword [0x637d10], esi
mov dword [0x637d14], edx
call fcn.00515f60
add esp, 4
xor ebx, ebx
cmp byte [0x6b4723], bl
jne 0x4cb67e
cmp byte [0x6b4732], bl
je 0x4cb5f3
lea ecx, [esp + 0x68]
push ecx
mov byte [0x6b4732], bl
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
push ebx
push 0x3e8
push ecx
push eax
mov dword [0x6b46c8], eax
mov dword [0x6b46cc], ecx
mov dword [0x6b46d8], eax
mov dword [0x6b46dc], ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
mov dword [0x6b46d0], eax
mov byte [0x6b4731], 1
cmp byte [0x6bd094], bl
je 0x4cb624
movsx eax, word [0x6b46e8]
cmp eax, ebx
jle 0x4cb614
cmp eax, 2
jg 0x4cb614
push 0xff
push 0x14
jmp 0x4cb61b
push 0xff
push 0x64
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
lea edx, [esp + 0x70]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push ebx
push 0x3e8
push eax
push ecx
call fcn.005d2e50
mov ecx, dword [0x647764]
push ecx
mov ecx, dword [0x647760]
push ecx
push edx
push eax
call fcn.005de0d0
sub eax, dword [0x6b4a78]
cmp eax, 0xc8
mov dword [0x6b4a80], eax
jbe 0x4cab71
mov dword [0x6b4a80], 0xc8
jmp 0x4cab71
call fcn.004cd290
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret