Function at 0x46d840
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x90
push ebx
or eax, 0xffffffff
push ebp
push esi
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x2c]
xor edi, edi
mov dword [esp + 0x28], ecx
cmp eax, edi
jbe 0x46c190
mov edx, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
sub edx, 1
sbb esi, edi
xor ebx, ebx
mov dword [esp + 0x34], edx
sub edx, eax
mov dword [esp + 0x38], esi
sbb esi, ebx
add edx, 1
adc esi, edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov esi, dword [ecx + 0x10]
lea ebp, [ecx + 4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov edi, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov dword [esp + 0x3c], ebp
cmp esi, dword [ebp + 0x10]
jbe 0x46c1af
call edi
mov eax, dword [ebp]
mov dword [esp + 0x4c], esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
cmp dword [ebp + 0xc], esi
jbe 0x46c1c4
call edi
mov ecx, dword [ebp]
mov dword [esp + 0x44], esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x40], ecx
cmp dword [ebp + 0xc], esi
jbe 0x46c1d9
call edi
mov edx, dword [ebp]
mov dword [esp + 0x14], esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x10], edx
cmp esi, dword [ebp + 0x10]
jbe 0x46c1ee
call edi
mov ebx, dword [ebp]
mov dword [esp + 0x2c], ebx
mov edi, dword [ebp + 0x10]
cmp dword [ebp + 0xc], edi
jbe 0x46c203
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [ebp]
test ebx, ebx
je 0x46c20e
cmp ebx, eax
je 0x46c214
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp esi, edi
je 0x46c44c
test ebx, ebx
jne 0x46c2ee
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46c237
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esi + 0x20], 1
jne 0x46c2cb
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x2c], 0
jbe 0x46c444
test ebx, ebx
jne 0x46c2f5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46c26a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esp + 0x24]
jl 0x46c29a
jg 0x46c27e
mov edx, dword [esi + 0x10]
cmp edx, dword [esp + 0x20]
jb 0x46c29a
mov eax, dword [esi + 0xc]
cmp eax, dword [esp + 0x38]
jl 0x46c444
jg 0x46c29a
mov ecx, dword [esi + 8]
cmp ecx, dword [esp + 0x34]
jbe 0x46c444
mov edi, dword [ebp + 0x10]
cmp dword [ebp + 0xc], edi
jbe 0x46c2a8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp]
test ecx, ecx
je 0x46c2b7
cmp ecx, eax
je 0x46c2bd
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x14], edi
jne 0x46c2cb
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
test ebx, ebx
jne 0x46c2fc
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46c2e2
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esi + 0x20], 3
jne 0x46c300
xor ebx, ebx
xor edi, edi
jmp 0x46c30c
mov eax, dword [ebx]
jmp 0x46c22c
mov eax, dword [ebx]
jmp 0x46c25f
mov eax, dword [ebx]
jmp 0x46c2d7
mov ebx, dword [esi + 0x10]
sub ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x14]
sbb edi, dword [esi + 0x1c]
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x46c33b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x4c]
cmp edx, dword [eax + 0x10]
jb 0x46c32f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x4c]
cmp dword [edx + 0x20], 3
jne 0x46c33f
xor ecx, ecx
xor eax, eax
jmp 0x46c34b
mov eax, dword [eax]
jmp 0x46c31c
mov ecx, dword [edx + 0x10]
sub ecx, dword [edx + 0x18]
mov eax, dword [edx + 0x14]
sbb eax, dword [edx + 0x1c]
cmp edi, eax
jl 0x46c361
jg 0x46c355
cmp ebx, ecx
jbe 0x46c361
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x2c], 0
jbe 0x46c40e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x46c435
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46c38e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esp + 0x24]
jl 0x46c40e
jg 0x46c3a2
mov edx, dword [esi + 0x10]
cmp edx, dword [esp + 0x20]
jb 0x46c40e
mov eax, dword [esi + 0xc]
cmp eax, dword [esp + 0x38]
jg 0x46c40e
jl 0x46c3b6
mov ecx, dword [esi + 8]
cmp ecx, dword [esp + 0x34]
ja 0x46c40e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x46c43c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46c3d1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004693d0
cmp edx, dword [esp + 0x1c]
jl 0x46c40e
jg 0x46c3fa
cmp eax, dword [esp + 0x18]
jbe 0x46c40e
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x46c440
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46c429
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [esp + 0x2c]
add esi, 0x38
jmp 0x46c1f5
mov eax, dword [eax]
jmp 0x46c383
mov eax, dword [eax]
jmp 0x46c3c6
mov eax, dword [eax]
jmp 0x46c41e
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov esi, dword [ebp + 0x10]
cmp dword [ebp + 0xc], esi
jbe 0x46c45a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp]
test ecx, ecx
je 0x46c469
cmp ecx, eax
je 0x46c46f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x14], esi
je 0x46c63a
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46c605
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x14]
cmp edx, dword [eax + 0x10]
jb 0x46c49c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x20], 0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46c60c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x46c4ca
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov byte [edx + 0x24], 1
test eax, eax
jne 0x46c613
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x46c4f5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ecx
mov eax, dword [esp + 0x10]
cmp eax, ecx
jne 0x46c61a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x14]
cmp edx, dword [eax + 0x10]
jb 0x46c524
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x30], 0xffffffff
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46c621
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x46c552
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov esi, dword [esp + 0xa4]
mov dword [esi], eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46c628
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x46c584
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46c62f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x46c5b7
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x10]
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46c636
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x46c5e6
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x18]
mov dword [esi + 0x18], edx
mov eax, dword [eax + 0x1c]
pop edi
mov dword [esi + 0x1c], eax
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x90
ret 4
mov eax, dword [eax]
jmp 0x46c48d
mov eax, dword [eax]
jmp 0x46c4bb
mov eax, dword [eax]
jmp 0x46c4e6
mov eax, dword [eax]
jmp 0x46c515
mov eax, dword [eax]
jmp 0x46c543
mov eax, dword [eax]
jmp 0x46c575
mov eax, dword [eax]
jmp 0x46c5a8
mov eax, dword [eax]
jmp 0x46c5d7
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x2c]
test eax, eax
jbe 0x46c860
mov esi, dword [esp + 0x1c]
test esi, esi
jl 0x46c859
mov edx, dword [esp + 0x18]
jg 0x46c663
test edx, edx
jbe 0x46c859
test esi, esi
jl 0x46c860
jg 0x46c679
cmp edx, 0x10000
jb 0x46c860
xor ecx, ecx
cmp edx, eax
jne 0x46c806
cmp esi, ecx
jne 0x46c806
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x46c78b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x44]
cmp ecx, dword [eax + 0x10]
jb 0x46c6ae
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
add ecx, 1
adc eax, 0
cmp eax, dword [esp + 0x24]
jg 0x46c806
jl 0x46c6d4
cmp ecx, dword [esp + 0x20]
jae 0x46c806
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
inc dword [eax]
mov edi, dword [esp + 0x24]
mov ebp, dword [eax]
xor ecx, ecx
mov dword [esp + 0x70], esi
sub esi, 1
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x74], edi
sbb edi, ecx
mov ebx, esi
lea ecx, [esp + 0x40]
mov byte [esp + 0x8c], 1
mov dword [esp + 0x98], 0xffffffff
mov dword [esp + 0x68], ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edi
call fcn.00463020
mov edx, dword [esp + 0x40]
mov dword [eax + 0x10], esi
push 0
lea ecx, [esp + 0x1c]
mov dword [eax + 0x14], edi
mov eax, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
call fcn.004695c0
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x18]
push edx
call fcn.004698c0
push eax
lea ecx, [esp + 0x30]
call fcn.00458f30
test al, al
je 0x46c792
lea ecx, [esp + 0x2c]
call fcn.00463020
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
jmp 0x46c79c
mov eax, dword [eax]
jmp 0x46c69f
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0x20]
mov edi, dword [eax + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x68]
push eax
push ecx
mov ecx, dword [esp + 0x44]
sub esi, 1
push edx
lea eax, [esp + 0x24]
sbb edi, 0
push eax
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], esi
call fcn.0046b0e0
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x14], edi
pop edi
mov dword [eax + 0x10], esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x80]
pop esi
mov dword [eax], ebp
mov dword [eax + 0x18], ebx
pop ebp
mov dword [eax + 0xc], edx
mov dword [eax + 0x1c], ecx
mov al, 1
pop ebx
add esp, 0x90
ret 4
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push 0
push 2
push eax
push ecx
call fcn.0047c0d0
mov ecx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x4c]
call fcn.0046bdd0
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x90
ret 4
mov dword [ecx + 0x2c], 0
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x46c88f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x4c]
cmp edx, dword [eax + 0x10]
jb 0x46c87f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x4c]
cmp dword [edx + 0x20], 3
jne 0x46c893
xor eax, eax
xor ecx, ecx
jmp 0x46c89f
mov eax, dword [eax]
jmp 0x46c870
mov eax, dword [edx + 0x10]
sub eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x14]
sbb ecx, dword [edx + 0x1c]
push 0
push 2
push ecx
push eax
call fcn.0047c0d0
mov edi, dword [esp + 0x28]
mov esi, dword [edi + 0x38]
xor ecx, ecx
cmp edx, ecx
jg 0x46cb08
jl 0x46c8c5
cmp eax, esi
jae 0x46cb08
cmp dword [edi + 0x34], 0
jne 0x46caf9
mov ecx, dword [edi + 0x44]
call fcn.0044edf0
test al, al
je 0x46caf9
push 4
call fcn.0047bd5c
add esp, 4
test eax, eax
je 0x46c8f9
lea ecx, [esp + 0x50]
mov dword [eax], ecx
mov dword [esp + 0x50], eax
jmp 0x46c901
mov dword [esp + 0x50], 0
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
xor esi, esi
xor ebx, ebx
xor edi, edi
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x3c], esi
je 0x46c9a9
mov ebx, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
lea edi, [esi + 3]
jmp 0x46c940
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x46c95f
call ebx
mov eax, dword [ebp + 0xc]
lea edx, [esi*8]
sub edx, esi
cmp dword [eax + edx*8 + 0x20], edi
je 0x46c97f
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x54]
call fcn.0046b1a0
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
mov dword [esp + 0x3c], esi
cmp esi, eax
jb 0x46c940
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
sub edi, ebx
sar edi, 2
xor esi, esi
cmp edi, esi
jle 0x46cad3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
div edi
mov ecx, dword [esp + 0x60]
sub ecx, dword [esp + 0x5c]
mov ebx, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
sar ecx, 2
mov esi, edx
cmp esi, ecx
jb 0x46c9db
call ebx
mov edx, dword [esp + 0x5c]
lea edi, [edx + esi*4]
mov esi, dword [ebp + 0xc]
cmp esi, dword [ebp + 0x10]
jbe 0x46c9ec
call ebx
mov eax, dword [ebp]
mov dword [esp + 0x18], eax
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], esi
call fcn.00469490
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x46cabd
call ebx
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp esi, dword [eax + 0x10]
jb 0x46ca1e
call ebx
mov ecx, dword [esi]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov dword [ebx], ecx
test edi, edi
jne 0x46cac4
call ebp
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46ca42
call ebp
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
test edi, edi
jne 0x46cacb
call ebp
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x46ca5d
call ebp
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0x10], ecx
mov edx, dword [esi + 0x14]
mov dword [ebx + 0x14], edx
test edi, edi
jne 0x46cacf
call ebp
cmp esi, dword [edi + 0x10]
jb 0x46ca76
call ebp
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0x1c], ecx
test eax, eax
je 0x46ca93
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [esp + 0x50]
xor eax, eax
push edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x90
ret 4
mov eax, dword [edi]
jmp 0x46ca13
mov eax, dword [edi]
jmp 0x46ca3b
mov eax, dword [edi]
jmp 0x46ca56
mov edi, dword [edi]
jmp 0x46ca6f
cmp ebx, esi
je 0x46cae0
push ebx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, dword [esp + 0x50]
push eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x90
ret 4
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0xac]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0046bb70
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x90
ret 4
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x20]
xor edi, edi
push edi
push eax
push ecx
push edx
call fcn.0046dae0
mov ecx, dword [esi + 0x24]
mov ebp, eax
mov eax, dword [esi + 0x3c]
push eax
mov dword [esp + 0x38], edx
mov edx, dword [esi + 0x20]
push ecx
push edx
mov dword [esp + 0x3c], ebp
call fcn.0046db60
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov edi, dword [esi + 0x10]
add esp, 0x1c
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
cmp edi, dword [esi + 0x14]
jbe 0x46cb99
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [esi + 4]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
test ebx, ebx
jne 0x46cd3e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cbbf
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi + 0x14]
cmp eax, dword [esp + 0x24]
jl 0x46cc1f
jg 0x46cbd1
mov ecx, dword [edi + 0x10]
cmp ecx, ebp
jb 0x46cc1f
mov edx, dword [edi + 0xc]
cmp edx, dword [esp + 0x1c]
jg 0x46cc1f
jl 0x46cbe5
mov eax, dword [edi + 8]
cmp eax, dword [esp + 0x18]
ja 0x46cc1f
test ebx, ebx
jne 0x46cd45
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cc00
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push ecx
push edx
push eax
push ebp
mov ecx, edi
call fcn.004693d0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov edi, dword [esi + 0x10]
cmp edi, dword [esi + 0x14]
jbe 0x46cc2d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebp, dword [esi + 4]
mov ebx, dword [esi + 0x14]
cmp dword [esi + 0x10], ebx
jbe 0x46cc3e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esi + 4]
test ebp, ebp
je 0x46cc49
cmp ebp, eax
je 0x46cc4f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp edi, ebx
je 0x46cec3
test ebp, ebp
jne 0x46cd4c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cc72
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [edi + 0x14]
cmp ecx, dword [esp + 0x24]
jl 0x46cd1f
jg 0x46cc8e
mov edx, dword [edi + 0x10]
cmp edx, dword [esp + 0x20]
jb 0x46cd1f
mov eax, dword [edi + 0xc]
cmp eax, dword [esp + 0x1c]
jg 0x46cd1f
jl 0x46cca6
mov ecx, dword [edi + 8]
cmp ecx, dword [esp + 0x18]
ja 0x46cd1f
test ebp, ebp
jne 0x46cd54
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46ccc1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [edi + 0x20], 1
je 0x46cd69
test ebp, ebp
jne 0x46cd5c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cce6
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
mov ecx, edi
call fcn.004693d0
cmp edx, dword [esp + 0x14]
jl 0x46cd1f
jg 0x46cd0f
cmp eax, dword [esp + 0x10]
jbe 0x46cd1f
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test ebp, ebp
jne 0x46cd64
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cd36
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add edi, 0x38
jmp 0x46cc30
mov eax, dword [ebx]
jmp 0x46cbb4
mov eax, dword [ebx]
jmp 0x46cbf5
mov eax, dword [ebp]
jmp 0x46cc67
mov eax, dword [ebp]
jmp 0x46ccb6
mov eax, dword [ebp]
jmp 0x46ccdb
mov eax, dword [ebp]
jmp 0x46cd2b
test ebp, ebp
jne 0x46ce89
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cd84
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov dword [edi + 0x20], 0
test ebp, ebp
jne 0x46ce91
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cda6
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov byte [edi + 0x24], 1
test ebp, ebp
jne 0x46ce99
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cdc5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
cmp ebp, eax
jne 0x46cea1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46cde8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov dword [edi + 0x30], 0xffffffff
test ebp, ebp
jne 0x46cea9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46ce0a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi]
mov esi, dword [esp + 0x4c]
mov dword [esi], eax
test ebp, ebp
jne 0x46ceb1
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46ce2d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [edi + 8]
mov dword [esi + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0xc], edx
test ebp, ebp
jne 0x46ceb9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46ce50
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
test ebp, ebp
jne 0x46cebe
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp edi, dword [ebp + 0x10]
jb 0x46ce71
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 0x18]
mov dword [esi + 0x18], edx
mov eax, dword [edi + 0x1c]
pop edi
mov dword [esi + 0x1c], eax
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x38
ret 4
mov eax, dword [ebp]
jmp 0x46cd79
mov eax, dword [ebp]
jmp 0x46cd9b
mov eax, dword [ebp]
jmp 0x46cdba
mov eax, dword [ebp]
jmp 0x46cddd
mov eax, dword [ebp]
jmp 0x46cdff
mov eax, dword [ebp]
jmp 0x46ce22
mov eax, dword [ebp]
jmp 0x46ce45
mov ebp, dword [ebp]
jmp 0x46ce66
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0
push 2
push ecx
push edx
call fcn.0047c0d0
mov edi, dword [esi + 0x38]
xor ecx, ecx
cmp edx, ecx
jg 0x46d19b
jl 0x46ceed
cmp eax, edi
jae 0x46d19b
cmp dword [esi + 0x34], ecx
jne 0x46d18f
mov ecx, dword [esi + 0x44]
call fcn.0044edf0
test al, al
je 0x46d18f
push 4
call fcn.0047bd5c
add esp, 4
test eax, eax
je 0x46cf20
lea ecx, [esp + 0x30]
mov dword [eax], ecx
mov dword [esp + 0x30], eax
jmp 0x46cf28
mov dword [esp + 0x30], 0
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
xor edi, edi
xor ebx, ebx
xor ebp, ebp
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], edi
mov dword [esp + 0x10], edi
je 0x46d027
mov ebx, dword [esp + 0x24]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jb 0x46cf84
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esi + 0x10]
lea ebp, [edi*8]
sub ebp, edi
add ebp, ebp
add ebp, ebp
add ebp, ebp
cmp dword [edx + ebp + 0x20], 3
je 0x46cff9
mov ecx, dword [esi + 0x14]
sub ecx, edx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x46cfbf
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + ebp + 0x14]
add eax, ebp
cmp ecx, ebx
jl 0x46cff9
jg 0x46cfd7
mov edx, dword [eax + 0x10]
cmp edx, dword [esp + 0x20]
jb 0x46cff9
mov ecx, dword [eax + 0xc]
cmp ecx, dword [esp + 0x1c]
jg 0x46cff9
jl 0x46cfeb
mov edx, dword [eax + 8]
cmp edx, dword [esp + 0x18]
ja 0x46cff9
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x34]
call fcn.0046b1a0
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
inc edi
add ecx, edx
mov dword [esp + 0x10], edi
cmp edi, ecx
jb 0x46cf61
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
sub ebp, ebx
sar ebp, 2
xor edi, edi
cmp ebp, edi
jle 0x46d169
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
div ebp
mov edi, edx
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x3c]
sar edx, 2
cmp edi, edx
jb 0x46d057
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x3c]
mov ebp, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
lea ebx, [eax + edi*4]
mov edi, dword [esi + 0x10]
cmp edi, dword [esi + 0x14]
jbe 0x46d06e
call ebp
mov esi, dword [esi + 4]
mov ebx, dword [ebx]
mov dword [esp + 0x2c], edi
test esi, esi
jne 0x46d09e
call ebp
mov ebp, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
lea ecx, [ebx*8]
sub ecx, ebx
lea edi, [edi + ecx*8]
cmp edi, dword [eax + 0x10]
ja 0x46d0a9
test esi, esi
je 0x46d0a2
mov eax, dword [esi]
jmp 0x46d0a4
mov eax, dword [esi]
jmp 0x46d085
xor eax, eax
cmp edi, dword [eax + 0xc]
jae 0x46d0ab
call ebp
test esi, esi
jne 0x46d153
call ebp
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46d0be
call ebp
mov edx, dword [edi]
mov ebx, dword [esp + 0x4c]
mov dword [ebx], edx
test esi, esi
jne 0x46d15a
call ebp
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46d0d9
call ebp
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 0xc], ecx
test esi, esi
jne 0x46d161
call ebp
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46d0f4
call ebp
mov edx, dword [edi + 0x10]
mov dword [ebx + 0x10], edx
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x14], eax
test esi, esi
jne 0x46d165
call ebp
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x46d10f
call ebp
mov ecx, dword [edi + 0x18]
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x18], ecx
mov edx, dword [edi + 0x1c]
mov dword [ebx + 0x1c], edx
test eax, eax
je 0x46d12c
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x38
ret 4
mov eax, dword [esi]
jmp 0x46d0b7
mov eax, dword [esi]
jmp 0x46d0d2
mov eax, dword [esi]
jmp 0x46d0ed
mov eax, dword [esi]
jmp 0x46d108
cmp ebx, edi
je 0x46d176
push ebx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esp + 0x30]
push ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x38
ret 4
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0046bdd0
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x38
ret 4
sub esp, 0x3c
push ebx
mov ebx, dword [ecx + 0x24]
push edi
mov edi, dword [ecx + 0x20]
mov eax, edi
or eax, ebx
jne 0x46d85b
pop edi
xor al, al
pop ebx
add esp, 0x3c
ret 4
lea eax, [ecx + 4]
push esi
mov esi, dword [eax + 0x10]
sub esi, dword [eax + 0xc]
mov dword [esp + 0xc], eax
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x46d8f4
inc dword [ecx]
mov ecx, dword [ecx]
xor esi, esi
push ebp
or ebp, 0xffffffff
sub edi, 1
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
sbb ebx, esi
push edx
mov byte [esp + 0x3c], 1
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
call fcn.0046d1e0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ebp
pop ebp
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
pop esi
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebx
pop edi
mov dword [eax], ecx
mov al, 1
pop ebx
add esp, 0x3c
ret 4
cmp dword [ecx + 0x3c], 0
pop esi
pop edi
pop ebx
jl 0x46d905
add esp, 0x3c
jmp 0x46cb40
add esp, 0x3c
jmp 0x46c140