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

Disassembly:
push 0xffffffffffffffff
push 0x5e0360
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 8]
lea ecx, [eax + 2]
imul ecx, dword [ebp + 0x10]
add ecx, eax
shl ecx, 2
push ecx
call sub.mfc42u.dll_operatornew
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0xe0]
add esp, 4
lea ecx, [ebx + eax*4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], ecx
lea edx, [ecx + eax*4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x48], edx
lea edx, [edx + ecx*4]
test esi, esi
mov dword [esp + 0x10], edx
jne 0x5bb25a
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xe8]
lea ebx, [eax*4]
mov eax, dword [ebx + ecx]
lea ecx, [ebx + edx]
mov dword [esp + 0x3c], eax
cmp eax, dword [ecx]
jg 0x5bc8d6
jmp 0x5bae6d
mov eax, dword [esp + 0x3c]
push eax
mov ecx, ebp
call fcn.005b75f0
mov esi, eax
cmp esi, 6
jle 0x5bae89
cmp dword [ebp + 8], 4
jl 0x5bae89
mov esi, 6
jmp 0x5bae91
test esi, esi
jle 0x5bc8d6
mov eax, esi
imul eax, dword [ebp + 8]
lea ecx, [eax*4 + 4]
push ecx
call sub.mfc42u.dll_operatornew
mov edi, eax
mov eax, dword [ebp + 8]
mov edx, eax
add esp, 4
imul edx, esi
push edx
push edi
push eax
mov eax, dword [esp + 0x48]
push eax
mov ecx, ebp
mov dword [esp + 0x2c], edi
call fcn.005b7620
test eax, eax
mov dword [esp + 0x30], eax
jle 0x5bb208
xor esi, esi
test eax, eax
mov dword [esp + 0x34], esi
jle 0x5bb1ff
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
sub edx, eax
mov eax, dword [esp + 0xe4]
push ecx
push edx
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x64]
call fcn.005c0510
mov edx, esi
push 5
imul edx, dword [ebp + 8]
lea ecx, [esp + 0x5c]
mov dword [esp + 0xd8], 0
mov eax, dword [edi + edx*4]
push eax
call fcn.005c0c20
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x5bb1da
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x5c]
call fcn.005c0a70
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0xf0]
imul ecx, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], eax
shl ecx, 2
mov edx, ecx
mov dword [esp + 0x24], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xe0]
and ecx, 3
mov dword [esp + 0x40], eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp eax, dword [ebp + 0x10]
jge 0x5bb051
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xec]
sub eax, edx
sub esi, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x2c]
sub eax, edx
mov edi, ebx
lea ecx, [ebx + edx]
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], eax
jmp 0x5baffe
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov edx, edi
sub edx, ebx
mov edx, dword [edx + eax]
mov eax, dword [esp + 0x24]
add eax, edx
mov dword [esi + ecx], edx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [ecx]
sub eax, edx
mov dword [esi + ecx], eax
mov eax, dword [esp + 0x50]
mov esi, dword [eax + ecx]
sub esi, edx
cmp esi, 1
jge 0x5bb034
mov esi, 1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
inc eax
add edi, 4
mov dword [edx + ecx], esi
mov edx, dword [ebp + 0x10]
add ecx, 4
cmp eax, edx
mov dword [esp + 0x40], eax
jl 0x5baffa
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x48]
shl ecx, 2
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x10]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x10]
push eax
mov edx, dword [ecx]
call dword [edx + 0x14]
test al, al
je 0x5bb1bd
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
mov esi, dword [ebp + 0x98]
call edi
call edi
cmp eax, dword [esi + 4]
seta al
test al, al
jne 0x5bb228
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov edx, ecx
imul edx, dword [esp + 0x34]
lea edx, [eax + edx*4]
mov eax, 1
cmp ecx, eax
mov dword [esp + 0x20], edx
jle 0x5bb17f
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
add ecx, 8
add edx, 4
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0xe0]
mov ecx, dword [edx]
mov edx, eax
imul edx, dword [ebp + 0x10]
add edx, edi
mov edi, dword [esp + 0x10]
mov dword [edi + edx*4], ecx
mov edx, dword [esp + 0x18]
mov edi, dword [ebx + edx]
sub edi, ecx
mov dword [ebx + edx], edi
mov edx, dword [ebx + esi]
sub edx, ecx
mov dword [ebx + esi], edx
mov ecx, dword [ebp + 8]
lea edx, [ecx - 1]
cmp eax, edx
jge 0x5bb158
mov edx, eax
mov edi, dword [esp + 0xe0]
imul edx, dword [ebp + 0x10]
add edx, edi
mov edi, dword [esp + 0x10]
mov edx, dword [edi + edx*4]
mov edi, dword [esp + 0x20]
cmp edx, dword [edi + eax*4 + 4]
je 0x5bb158
lea edx, [eax + 1]
cmp edx, ecx
jge 0x5bb158
mov ecx, dword [esp + 0x50]
mov edi, dword [ecx]
add ecx, 4
inc edi
inc edx
mov dword [ecx - 4], edi
mov edi, dword [ebp + 8]
cmp edx, edi
jl 0x5bb147
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov ecx, 4
inc eax
add edi, ecx
add edx, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x28], edi
cmp eax, ecx
mov dword [esp + 0x50], edx
jl 0x5bb0e2
jmp 0x5bb183
mov esi, dword [esp + 0x2c]
mov eax, dword [ebx + esi]
cmp eax, 1
jge 0x5bb190
mov eax, 1
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [ebx + esi], eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0xe8]
push esi
push edx
inc ecx
push eax
push ecx
push 1
mov ecx, ebp
call fcn.005badd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5baf3a
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov eax, dword [esp + 0x30]
inc esi
cmp esi, eax
mov dword [esp + 0x34], esi
jl 0x5baede
push edi
call sub.mfc42u.dll_operatordelete
add esp, 4
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x3c]
inc ecx
lea eax, [ebx + edx]
mov dword [esp + 0x3c], ecx
cmp ecx, dword [eax]
jle 0x5bae69
jmp 0x5bc8d6
mov eax, dword [esp + 0x1c]
push eax
call sub.mfc42u.dll_operatordelete
mov ecx, dword [esp + 0x1c]
push ecx
call sub.mfc42u.dll_operatordelete
add esp, 8
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
xor eax, eax
jmp 0x5bc8e6
dec ecx
cmp esi, ecx
mov dword [esp + 0x20], ecx
jne 0x5bb98e
mov edx, dword [esp + 0xe0]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x24], ecx
jle 0x5bb29a
mov edx, eax
mov edi, dword [esp + 0xf0]
imul edx, esi
lea edx, [edi + edx*4]
mov edi, dword [esp + 0xe0]
add ecx, dword [edx]
add edx, 4
dec edi
jne 0x5bb28e
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0xe4]
mov edx, dword [edx + esi*4]
sub edx, ecx
jns 0x5bb2b8
push ebx
call sub.mfc42u.dll_operatordelete
add esp, 4
mov eax, esi
jmp 0x5bc8e6
mov ecx, dword [esp + 0xe0]
lea edi, [ecx*4]
mov ecx, dword [esp + 0xe8]
lea esi, [edi + ecx]
mov ecx, dword [edi + ecx]
test ecx, ecx
jne 0x5bb60d
mov ecx, dword [esp + 0xe0]
push esi
sub eax, ecx
lea ecx, [esp + 0x5c]
push eax
push edx
call fcn.005c0510
mov edx, dword [esi]
push 4
push edx
lea ecx, [esp + 0x60]
mov dword [esp + 0xdc], 1
call fcn.005c0c20
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x5bb5a9
mov esi, dword [esp + 0x10]
jmp 0x5bb327
mov ebx, dword [esp + 0x18]
mov eax, dword [ebp + 8]
xor ecx, ecx
imul eax, dword [ebp + 0x10]
test eax, eax
jle 0x5bb357
mov edx, dword [esp + 0xf0]
mov eax, esi
sub edx, esi
mov esi, dword [edx + eax]
inc ecx
mov dword [eax], esi
mov esi, dword [ebp + 8]
imul esi, dword [ebp + 0x10]
add eax, 4
cmp ecx, esi
jl 0x5bb33f
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 8]
xor ecx, ecx
test eax, eax
jle 0x5bb381
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xf4]
sub edx, eax
mov esi, dword [edx + eax]
inc ecx
mov dword [eax], esi
mov esi, dword [ebp + 8]
add eax, 4
cmp ecx, esi
jl 0x5bb36d
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xe0]
test eax, eax
jle 0x5bb3d2
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0x2c]
sub ecx, ebx
sub edx, ebx
mov eax, ebx
sub esi, ebx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x24], ebx
mov ebx, dword [ecx + eax]
mov dword [eax], ebx
mov ebx, dword [edx + eax]
mov dword [esi + eax], ebx
mov ebx, dword [esp + 0x24]
add eax, 4
dec ebx
mov dword [esp + 0x24], ebx
jne 0x5bb3b1
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xe0]
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], eax
jge 0x5bb50a
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
sub eax, ebx
mov esi, edi
mov dword [esp + 0x54], eax
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov ebx, esi
push ecx
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x34]
imul edx, dword [ebp + 0x10]
mov eax, dword [eax + ebx]
add edx, ecx
mov ecx, dword [esp + 0x10]
mov ebx, esi
sub ebx, edi
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x5c]
call fcn.005c0a70
mov eax, dword [eax + ebx]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x38]
add ebx, eax
lea eax, [esi + ecx]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
add edx, eax
mov eax, dword [esp + 0x14]
mov ebx, esi
push eax
lea ecx, [esp + 0x5c]
sub ebx, edi
mov dword [esp + 0x24], edx
call fcn.005c0a70
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + edx]
sub edx, dword [eax + ebx]
mov eax, dword [esp + 0x14]
mov ebx, esi
push eax
mov dword [ecx], edx
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov ecx, dword [eax + ebx]
sub edx, ecx
cmp edx, 1
jge 0x5bb4c7
mov ecx, 1
jmp 0x5bb4e4
mov eax, dword [esp + 0x14]
mov ebx, esi
push eax
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + ebx]
mov ecx, dword [ecx]
sub ecx, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
add esi, 4
mov dword [edx + eax], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x34], eax
jl 0x5bb418
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xdc]
mov ecx, dword [ebp + 8]
lea eax, [edx + 1]
cmp eax, ecx
jge 0x5bb539
mov ecx, eax
mov ebx, dword [esp + 0xe0]
imul ecx, dword [ebp + 0x10]
add ecx, ebx
inc eax
mov dword [esi + ecx*4], 0
mov ecx, dword [ebp + 8]
cmp eax, ecx
jl 0x5bb51b
mov ecx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x10]
mov ebx, dword [ecx]
mov dword [esp + 0x20], ebx
mov ebx, eax
imul ebx, edx
lea edx, [esi + ebx*4]
push edx
push eax
mov eax, dword [esp + 0x28]
call dword [eax + 0x14]
test al, al
je 0x5bb594
mov ebx, dword [ebp + 0x98]
call dword [sym.imp.kernel32.dll_GetTickCount]
call dword [sym.imp.kernel32.dll_GetTickCount]
cmp eax, dword [ebx + 4]
seta al
test al, al
jne 0x5bb5bd
push esi
mov ecx, ebp
call fcn.005b80d0
mov ebx, eax
test ebx, ebx
jl 0x5bb594
cmp ebx, dword [esp + 0xdc]
jl 0x5bb5e5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5bb323
mov dword [esp + 0xd4], 0xffffffff
lea ecx, [esp + 0x58]
jmp 0x5bc8d1
mov ecx, dword [esp + 0x18]
push ecx
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
xor eax, eax
jmp 0x5bc8e6
mov edx, dword [esp + 0x18]
push edx
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov eax, ebx
jmp 0x5bc8e6
mov eax, dword [esp + 0xec]
mov eax, dword [edi + eax]
cmp eax, ecx
mov dword [esp + 0x3c], eax
jg 0x5bc8d6
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0xdc]
push esi
sub ecx, dword [esp + 0xe4]
push ecx
mov ecx, dword [edx + eax*4]
sub ecx, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x64]
call fcn.005c0510
mov edx, dword [esp + 0x3c]
push 4
push edx
lea ecx, [esp + 0x60]
mov dword [esp + 0xdc], 2
call fcn.005c0c20
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x5bb903
mov eax, dword [ebp + 8]
xor ecx, ecx
imul eax, dword [ebp + 0x10]
test eax, eax
jle 0x5bb6af
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xf0]
sub edx, eax
mov esi, dword [eax + edx]
inc ecx
mov dword [eax], esi
mov esi, dword [ebp + 8]
imul esi, dword [ebp + 0x10]
add eax, 4
cmp ecx, esi
jl 0x5bb69b
mov eax, dword [ebp + 8]
xor ecx, ecx
test eax, eax
jle 0x5bb6d7
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xf4]
mov esi, eax
sub edx, esi
mov esi, dword [eax + edx]
inc ecx
mov dword [eax], esi
mov esi, dword [ebp + 8]
add eax, 4
cmp ecx, esi
jl 0x5bb6c7
mov eax, dword [esp + 0xe0]
test eax, eax
jle 0x5bb72b
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0x2c]
sub ecx, ebx
sub edx, ebx
mov eax, ebx
sub esi, ebx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x40], ebx
mov ebx, dword [eax + ecx]
mov dword [eax], ebx
mov ebx, dword [eax + edx]
mov dword [eax + esi], ebx
mov ebx, dword [esp + 0x40]
add eax, 4
dec ebx
mov dword [esp + 0x40], ebx
jne 0x5bb707
mov eax, dword [esp + 0xe0]
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x40], 0
cmp eax, ecx
mov dword [esp + 0x34], eax
jge 0x5bb858
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
sub eax, ebx
mov esi, edi
mov dword [esp + 0x54], eax
mov eax, ebx
sub eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov ebx, esi
push ecx
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x34]
imul edx, dword [ebp + 0x10]
mov eax, dword [eax + ebx]
add edx, ecx
mov ecx, dword [esp + 0x10]
mov ebx, esi
sub ebx, edi
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x5c]
call fcn.005c0a70
mov eax, dword [eax + ebx]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x38]
add ebx, eax
lea eax, [esi + ecx]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x28], eax
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov ebx, esi
push eax
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + edx]
sub edx, dword [eax + ebx]
mov eax, dword [esp + 0x14]
mov ebx, esi
push eax
mov dword [ecx], edx
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov ecx, dword [eax + ebx]
sub edx, ecx
cmp edx, 1
jge 0x5bb819
mov ecx, 1
jmp 0x5bb836
mov eax, dword [esp + 0x14]
mov ebx, esi
push eax
lea ecx, [esp + 0x5c]
sub ebx, edi
call fcn.005c0a70
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + ebx]
mov ecx, dword [ecx]
sub ecx, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
add esi, 4
mov dword [eax + edx], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x34], eax
jl 0x5bb76a
mov esi, dword [esp + 0xdc]
mov ecx, dword [ebp + 8]
lea eax, [esi + 1]
cmp eax, ecx
jge 0x5bb88b
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x10]
mov ebx, eax
imul ebx, dword [ebp + 0x10]
add ebx, ecx
inc eax
mov dword [edx + ebx*4], 0
mov ebx, dword [ebp + 8]
cmp eax, ebx
jl 0x5bb874
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x98]
mov ebx, eax
imul ebx, esi
mov esi, dword [esp + 0x10]
mov edx, dword [ecx]
lea esi, [esi + ebx*4]
push esi
push eax
call dword [edx + 0x14]
test al, al
je 0x5bb8e2
mov ebx, dword [sym.imp.kernel32.dll_GetTickCount]
mov esi, dword [ebp + 0x98]
call ebx
call ebx
cmp eax, dword [esi + 4]
seta al
test al, al
jne 0x5bb93e
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.005b80d0
mov esi, eax
test esi, esi
jl 0x5bb8e2
mov eax, dword [esp + 0xdc]
cmp esi, eax
jle 0x5bb8fd
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5bb681
jmp 0x5bb903
jl 0x5bb966
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0x3c]
mov eax, dword [edi + ecx]
lea esi, [edi + ecx]
cmp edx, eax
jle 0x5bb627
jmp 0x5bc8d6
mov eax, dword [esp + 0x18]
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
xor eax, eax
jmp 0x5bc8e6
mov ecx, dword [esp + 0x18]
push ecx
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov eax, esi
jmp 0x5bc8e6
mov ecx, dword [ebp + 0x14]
mov edi, 5
cmp ecx, 6
mov dword [esp + 0x3c], edi
jle 0x5bb9dd
mov ecx, dword [esp + 0xe0]
test ecx, ecx
jle 0x5bb9dd
mov edx, eax
mov ecx, dword [esp + 0xf0]
imul edx, esi
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0xe0]
cmp dword [ecx], 0
je 0x5bb9c6
dec edi
add ecx, 4
dec edx
jne 0x5bb9c0
cmp edi, 3
mov dword [esp + 0x3c], edi
jge 0x5bb9dd
mov dword [esp + 0x3c], 3
mov ecx, dword [esp + 0xe0]
xor edx, edx
test ecx, ecx
mov dword [esp + 0x40], edx
jle 0x5bba10
mov ecx, eax
mov edi, dword [esp + 0xf0]
imul ecx, esi
lea ecx, [edi + ecx*4]
mov edi, dword [esp + 0xe0]
add edx, dword [ecx]
add ecx, 4
dec edi
jne 0x5bba04
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xe4]
mov ecx, dword [ecx + esi*4]
sub ecx, edx
jns 0x5bba2e
push ebx
call sub.mfc42u.dll_operatordelete
add esp, 4
mov eax, esi
jmp 0x5bc8e6
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xe8]
lea ebx, [edx*4]
add esi, ebx
mov edi, dword [esi]
test edi, edi
mov dword [esp + 0x44], edi
jne 0x5bbcaf
sub eax, edx
push esi
push eax
push ecx
lea ecx, [esp + 0x64]
call fcn.005c0510
mov edx, dword [esp + 0x3c]
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x60]
mov dword [esp + 0xdc], 3
call fcn.005c0c20
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], edi
test eax, eax
jle 0x5bbc70
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x5c]
call fcn.005c0a70
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0xf0]
imul ecx, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x20], eax
shl ecx, 2
mov edx, ecx
mov dword [esp + 0x24], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xe0]
and ecx, 3
mov dword [esp + 0x40], eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x10]
mov ecx, edx
imul ecx, dword [esp + 0xdc]
cmp eax, edx
jge 0x5bbbbe
mov esi, dword [esp + 0xec]
add ecx, eax
mov eax, dword [esp + 0x10]
mov edi, ebx
lea edx, [ebx + esi]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
sub eax, ecx
sub ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], ecx
jmp 0x5bbb60
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
mov ecx, edi
sub ecx, ebx
mov ecx, dword [ecx + esi]
mov esi, dword [esp + 0x28]
mov dword [esi], ecx
mov esi, dword [esp + 0x24]
add esi, ecx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x38]
add esi, edx
mov eax, dword [esi + eax]
sub eax, ecx
mov dword [esi], eax
mov esi, dword [edx]
sub esi, ecx
cmp esi, 1
jge 0x5bbb96
mov esi, 1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
inc eax
add edi, 4
mov dword [edx + ecx], esi
mov ecx, dword [esp + 0x28]
add ecx, 4
add edx, 4
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
mov dword [esp + 0x40], eax
jl 0x5bbb5c
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x48]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x10]
mov esi, eax
mov ecx, dword [ebp + 0x98]
imul esi, dword [esp + 0xdc]
mov edx, dword [ecx]
lea esi, [edi + esi*4]
push esi
push eax
call dword [edx + 0x14]
test al, al
je 0x5bbc5b
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
mov esi, dword [ebp + 0x98]
call edi
call edi
cmp eax, dword [esi + 4]
seta al
test al, al
jne 0x5bbc84
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0xdc]
push eax
mov eax, dword [esp + 0xe8]
push ecx
mov ecx, dword [esp + 0xe8]
push edx
push edi
inc ecx
push eax
lea edx, [esi + 1]
push ecx
push edx
mov ecx, ebp
call fcn.005badd0
test eax, eax
jl 0x5bbc5b
cmp eax, esi
jle 0x5bbc8b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5bba8d
mov dword [esp + 0xd4], 0xffffffff
lea ecx, [esp + 0x58]
jmp 0x5bc8d1
mov eax, dword [esp + 0x18]
push eax
jmp 0x5bbc8c
push edi
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
xor eax, eax
jmp 0x5bc8e6
mov esi, dword [esp + 0xdc]
mov edx, dword [esp + 0x20]
cmp esi, edx
mov byte [esp + 0x4f], 1
mov eax, esi
jge 0x5bbce5
mov ecx, dword [esp + 0xf4]
lea ecx, [ecx + esi*4]
mov edi, dword [ecx]
cmp edi, dword [ecx + 4]
jne 0x5bbce0
inc eax
add ecx, 4
cmp eax, edx
jl 0x5bbccf
jmp 0x5bbce5
mov byte [esp + 0x4f], 0
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0x44]
lea eax, [ebx + edx]
mov eax, dword [ebx + edx]
cmp eax, ecx
mov dword [esp + 0x28], eax
jg 0x5bc8d6
mov eax, dword [esp + 0x28]
mov ecx, ebp
push eax
call fcn.005b75f0
mov edi, eax
cmp edi, 6
jle 0x5bbd26
mov ecx, dword [ebp + 8]
sub ecx, esi
cmp ecx, 4
jl 0x5bbd26
mov edi, 6
jmp 0x5bbd2e
test edi, edi
jle 0x5bc8d6
mov edx, dword [ebp + 8]
sub edx, esi
imul edx, edi
lea eax, [edx*4 + 4]
push eax
call sub.mfc42u.dll_operatornew
mov ecx, eax
mov eax, dword [ebp + 8]
sub eax, esi
add esp, 4
mov edx, eax
mov dword [esp + 0x34], ecx
imul edx, edi
push edx
push ecx
push eax
mov eax, dword [esp + 0x34]
push eax
mov ecx, ebp
call fcn.005b7620
xor edi, edi
mov dword [esp + 0xa8], eax
test eax, eax
mov dword [esp + 0x50], edi
jle 0x5bc739
mov al, byte [esp + 0x4f]
test al, al
je 0x5bc14a
mov ecx, dword [esp + 0xe8]
mov edx, dword [ebp + 0x10]
lea eax, [ebx + ecx]
push eax
mov eax, dword [esp + 0xe4]
sub edx, eax
mov eax, dword [esp + 0xe8]
push edx
mov ecx, dword [eax + esi*4]
mov eax, dword [esp + 0x48]
sub ecx, eax
push ecx
lea ecx, [esp + 0x64]
call fcn.005c0510
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x3c]
sub eax, esi
mov ecx, dword [esp + 0x34]
imul eax, edi
push edx
mov dword [esp + 0xd8], 4
mov edx, dword [ecx + eax*4]
lea ecx, [esp + 0x5c]
push edx
call fcn.005c0c20
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x5bc12a
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x58]
push eax
call fcn.005c0a70
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0xf0]
imul ecx, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x20], eax
shl ecx, 2
mov edx, ecx
mov dword [esp + 0x24], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xe0]
and ecx, 3
mov dword [esp + 0x44], eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x10]
mov ecx, edx
imul ecx, dword [esp + 0xdc]
cmp eax, edx
jge 0x5bbf26
mov esi, dword [esp + 0xec]
add ecx, eax
mov eax, dword [esp + 0x10]
mov edi, ebx
lea edx, [ebx + esi]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
sub eax, ecx
sub ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], ecx
jmp 0x5bbec8
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
mov ecx, edi
sub ecx, ebx
mov ecx, dword [ecx + esi]
mov esi, dword [esp + 0x30]
mov dword [esi], ecx
mov esi, dword [esp + 0x24]
add esi, ecx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x38]
add esi, edx
mov eax, dword [esi + eax]
sub eax, ecx
mov dword [esi], eax
mov esi, dword [edx]
sub esi, ecx
cmp esi, 1
jge 0x5bbefe
mov esi, 1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
inc eax
add edi, 4
mov dword [edx + ecx], esi
mov ecx, dword [esp + 0x30]
add ecx, 4
add edx, 4
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x5bbec4
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x48]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x10]
mov esi, eax
mov ecx, dword [ebp + 0x98]
imul esi, dword [esp + 0xdc]
mov edx, dword [ecx]
lea esi, [edi + esi*4]
push esi
push eax
call dword [edx + 0x14]
test al, al
je 0x5bc0fd
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xdc]
mov eax, ecx
mov edx, dword [esp + 0x34]
sub eax, esi
imul eax, dword [esp + 0x50]
lea eax, [edx + eax*4]
mov dword [esp + 0x44], eax
lea eax, [esi + 1]
cmp eax, ecx
jge 0x5bc068
lea edx, [eax*4]
lea ecx, [eax + 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
lea ecx, [edx + ecx*4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esi*4]
mov esi, dword [esp + 0x44]
sub ecx, edx
mov edi, dword [esp + 0xe0]
mov ecx, dword [ecx + esi]
mov esi, eax
imul esi, dword [ebp + 0x10]
add esi, edi
mov edi, dword [esp + 0x10]
mov dword [edi + esi*4], ecx
mov esi, dword [esp + 0x18]
sub dword [ebx + esi], ecx
mov esi, dword [esp + 0x2c]
sub dword [ebx + esi], ecx
mov esi, dword [ebp + 8]
lea ecx, [esi - 1]
cmp eax, ecx
jge 0x5bc033
mov ecx, dword [esp + 0x1c]
sub ecx, edx
mov edx, eax
imul edx, dword [ebp + 0x10]
add edx, dword [esp + 0xe0]
mov edx, dword [edi + edx*4]
mov edi, dword [esp + 0x44]
cmp edx, dword [ecx + edi + 4]
je 0x5bc033
mov edx, dword [esp + 0x30]
cmp edx, esi
jge 0x5bc033
mov ecx, dword [esp + 0x38]
mov edi, dword [ecx]
add ecx, 4
inc edi
inc edx
mov dword [ecx - 4], edi
mov esi, dword [ebp + 8]
cmp edx, esi
jl 0x5bc022
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov ecx, 4
inc eax
add edi, ecx
add edx, ecx
mov ecx, dword [ebp + 8]
inc esi
cmp eax, ecx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], edx
jl 0x5bbfb4
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + ecx]
cmp eax, 1
jge 0x5bc079
mov eax, 1
mov dword [ebx + ecx], eax
lea eax, [esi + 1]
imul eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x98]
mov edx, dword [ecx]
lea eax, [edi + eax*4]
mov edi, dword [esp + 0xe0]
push eax
push edi
call dword [edx + 0x14]
test al, al
je 0x5bc0fd
mov ecx, dword [ebp + 0x98]
mov dword [esp + 0x20], ecx
call dword [sym.imp.kernel32.dll_GetTickCount]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov edx, dword [esp + 0x20]
cmp eax, dword [edx + 4]
seta al
test al, al
jne 0x5bc766
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0xec]
push edx
push eax
inc edi
push ecx
lea eax, [esi + 1]
push edi
push eax
mov ecx, ebp
call fcn.005badd0
mov edi, eax
test edi, edi
jl 0x5bc0fd
cmp edi, esi
jle 0x5bc114
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x58]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5bbdf5
jmp 0x5bc12a
jl 0x5bc798
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
cmp edx, eax
jl 0x5bc71e
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov esi, dword [esp + 0xdc]
jmp 0x5bc704
mov eax, 0x5f18f0
xor edi, edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0xd4], 5
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], edi
mov eax, dword [ebp + 8]
mov byte [esp + 0xd4], 6
shl eax, 2
push eax
call sub.mfc42u.dll_operatornew
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 8]
sub eax, esi
add esp, 4
test eax, eax
jle 0x5bc23e
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x24], ecx
lea ecx, [edx + esi*4]
mov dword [esp + 0x44], ecx
imul eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
add eax, edi
push 0xffffffffffffffff
lea ecx, [esp + 0x94]
lea eax, [edx + eax*4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x20], eax
inc eax
push eax
call fcn.0046d900
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
inc edi
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax]
add eax, 4
mov dword [ecx], edx
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 8]
add ecx, 4
sub eax, esi
mov dword [esp + 0x24], ecx
cmp edi, eax
jl 0x5bc1d9
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x7c]
push edi
lea ecx, [esp + 0x94]
push eax
push ecx
push 0
mov ecx, ebp
call fcn.005b7920
push edi
call sub.mfc42u.dll_operatordelete
mov eax, dword [esp + 0x88]
add esp, 4
cdq
idiv dword [esp + 0x98]
xor edi, edi
mov dword [esp + 0x24], edi
test eax, eax
mov dword [esp + 0xa4], eax
jle 0x5bc69b
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
lea eax, [ebx + edx]
push eax
mov eax, dword [ebp + 0x10]
sub eax, ecx
mov ecx, dword [esp + 0xe8]
push eax
mov edx, dword [ecx + esi*4]
mov ecx, dword [esp + 0x48]
sub edx, ecx
lea ecx, [esp + 0xb4]
push edx
call fcn.005c0510
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x3c]
sub ecx, esi
mov edx, dword [esp + 0x80]
imul ecx, edi
push eax
mov byte [esp + 0xd8], 7
mov eax, dword [edx + ecx*4]
lea ecx, [esp + 0xb0]
push eax
call fcn.005c0c20
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x5bc64b
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0xb0]
call fcn.005c0a70
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0xf0]
imul ecx, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x78], eax
shl ecx, 2
mov edx, ecx
mov dword [esp + 0x44], 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xe0]
and ecx, 3
mov dword [esp + 0x20], eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x10]
mov ecx, edx
imul ecx, dword [esp + 0xdc]
cmp eax, edx
jge 0x5bc432
mov esi, dword [esp + 0xec]
add ecx, eax
mov eax, dword [esp + 0x10]
mov edi, ebx
lea edx, [ebx + esi]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x18]
sub eax, ecx
sub ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], ecx
jmp 0x5bc3d4
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x78]
mov ecx, edi
sub ecx, ebx
mov ecx, dword [esi + ecx]
mov esi, dword [esp + 0x30]
mov dword [esi], ecx
mov esi, dword [esp + 0x44]
add esi, ecx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x38]
add esi, edx
mov eax, dword [eax + esi]
sub eax, ecx
mov dword [esi], eax
mov esi, dword [edx]
sub esi, ecx
cmp esi, 1
jge 0x5bc40a
mov esi, 1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
inc eax
add edi, 4
mov dword [ecx + edx], esi
mov ecx, dword [esp + 0x30]
add ecx, 4
add edx, 4
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x5bc3d0
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x48]
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x10]
mov esi, eax
mov ecx, dword [ebp + 0x98]
imul esi, dword [esp + 0xdc]
mov edx, dword [ecx]
lea esi, [edi + esi*4]
push esi
push eax
call dword [edx + 0x14]
test al, al
je 0x5bc61c
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0xdc]
mov eax, ecx
mov edx, dword [esp + 0x80]
sub eax, esi
imul eax, dword [esp + 0x24]
lea eax, [edx + eax*4]
mov dword [esp + 0x20], eax
lea eax, [esi + 1]
cmp eax, ecx
jge 0x5bc577
lea edx, [eax*4]
lea ecx, [eax + 1]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
lea ecx, [edx + ecx*4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esi*4]
mov esi, dword [esp + 0x20]
sub ecx, edx
mov edi, dword [esp + 0xe0]
mov ecx, dword [esi + ecx]
mov esi, eax
imul esi, dword [ebp + 0x10]
add esi, edi
mov edi, dword [esp + 0x10]
mov dword [edi + esi*4], ecx
mov esi, dword [esp + 0x18]
sub dword [ebx + esi], ecx
mov esi, dword [esp + 0x2c]
sub dword [ebx + esi], ecx
mov esi, dword [ebp + 8]
lea ecx, [esi - 1]
cmp eax, ecx
jge 0x5bc542
mov ecx, dword [esp + 0x1c]
sub ecx, edx
mov edx, eax
imul edx, dword [ebp + 0x10]
add edx, dword [esp + 0xe0]
mov edx, dword [edi + edx*4]
mov edi, dword [esp + 0x20]
cmp edx, dword [edi + ecx + 4]
je 0x5bc542
mov edx, dword [esp + 0x30]
cmp edx, esi
jge 0x5bc542
mov ecx, dword [esp + 0x38]
mov edi, dword [ecx]
add ecx, 4
inc edi
inc edx
mov dword [ecx - 4], edi
mov esi, dword [ebp + 8]
cmp edx, esi
jl 0x5bc531
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov ecx, 4
inc eax
add edi, ecx
add edx, ecx
mov ecx, dword [ebp + 8]
inc esi
cmp eax, ecx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], edx
jl 0x5bc4c3
mov eax, dword [esp + 0x2c]
mov eax, dword [ebx + eax]
cmp eax, 1
jge 0x5bc588
mov eax, 1
mov ecx, dword [esp + 0x2c]
lea edi, [esi + 1]
mov dword [ebx + ecx], eax
mov eax, dword [ebp + 0x98]
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
mov eax, edi
imul eax, dword [ebp + 0x10]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0xe0]
push eax
push ecx
mov ecx, dword [ebp + 0x98]
call dword [edx + 0x14]
test al, al
je 0x5bc61c
mov edx, dword [ebp + 0x98]
mov dword [esp + 0x78], edx
call dword [sym.imp.kernel32.dll_GetTickCount]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov ecx, dword [esp + 0x78]
cmp eax, dword [ecx + 4]
seta al
test al, al
jne 0x5bc7ca
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0xec]
push ecx
mov ecx, dword [esp + 0xec]
push edx
inc ecx
push eax
push ecx
push edi
mov ecx, ebp
call fcn.005badd0
mov edi, eax
test edi, edi
jl 0x5bc61c
cmp edi, esi
jle 0x5bc636
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5bc2fe
jmp 0x5bc64b
jl 0x5bc84f
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xac]
cmp edx, eax
jl 0x5bc680
lea ecx, [esp + 0xac]
mov byte [esp + 0xd4], 6
call fcn.005c0570
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0xdc]
inc edi
cmp edi, eax
mov dword [esp + 0x24], edi
jl 0x5bc286
jmp 0x5bc69b
lea ecx, [esp + 0xac]
mov byte [esp + 0xd4], 6
call fcn.005c0570
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x7c], 0x5f18f0
mov eax, dword [esp + 0x80]
mov byte [esp + 0xd4], 0xc
test eax, eax
je 0x5bc6bf
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov edi, 0x5e262c
mov dword [esp + 0x90], 0x5f18f0
mov dword [esp + 0x7c], edi
mov eax, dword [esp + 0x94]
mov dword [esp + 0xd4], 0xd
test eax, eax
je 0x5bc6f2
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0xd4], 0xffffffff
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0xa8]
inc edi
cmp edi, eax
mov dword [esp + 0x50], edi
jl 0x5bbd7a
jmp 0x5bc739
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov esi, dword [esp + 0xdc]
mov eax, dword [esp + 0x34]
push eax
call sub.mfc42u.dll_operatordelete
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0x2c]
add esp, 4
inc ecx
lea eax, [ebx + edx]
mov dword [esp + 0x28], ecx
cmp ecx, dword [eax]
jle 0x5bbd02
jmp 0x5bc8d6
mov eax, dword [esp + 0x18]
push eax
call sub.mfc42u.dll_operatordelete
mov ecx, dword [esp + 0x38]
push ecx
call sub.mfc42u.dll_operatordelete
add esp, 8
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
xor eax, eax
jmp 0x5bc8e6
mov edx, dword [esp + 0x18]
push edx
call sub.mfc42u.dll_operatordelete
mov eax, dword [esp + 0x38]
push eax
call sub.mfc42u.dll_operatordelete
add esp, 8
lea ecx, [esp + 0x58]
mov dword [esp + 0xd4], 0xffffffff
call fcn.005c0570
mov eax, edi
jmp 0x5bc8e6
mov ecx, dword [esp + 0x18]
push ecx
call sub.mfc42u.dll_operatordelete
mov edx, dword [esp + 0x38]
push edx
call sub.mfc42u.dll_operatordelete
add esp, 8
lea ecx, [esp + 0xac]
mov byte [esp + 0xd4], 6
call fcn.005c0570
mov esi, 0x5f18f0
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x80]
mov byte [esp + 0xd4], 8
test eax, eax
je 0x5bc81a
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0x7c], 0x5e262c
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x94]
mov dword [esp + 0xd4], 9
test eax, eax
je 0x5bc848
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
xor eax, eax
jmp 0x5bc8e6
mov eax, dword [esp + 0x18]
push eax
call sub.mfc42u.dll_operatordelete
mov ecx, dword [esp + 0x38]
push ecx
call sub.mfc42u.dll_operatordelete
add esp, 8
lea ecx, [esp + 0xac]
mov byte [esp + 0xd4], 6
call fcn.005c0570
mov esi, 0x5f18f0
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x80]
mov byte [esp + 0xd4], 0xa
test eax, eax
je 0x5bc89f
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [esp + 0x7c], 0x5e262c
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x94]
mov dword [esp + 0xd4], 0xb
test eax, eax
je 0x5bc8cd
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov eax, edi
jmp 0x5bc8e6
call fcn.005c0570
mov edx, dword [esp + 0x18]
push edx
call sub.mfc42u.dll_operatordelete
mov eax, dword [ebp + 8]
add esp, 4
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xc8
ret 0x1c