Function at 0x421c10
Capabilities:
Terminate thread

Disassembly:
sub esp, 0x70
push ebx
push ebp
push esi
push edi
mov edi, dword [0x471160]
mov dword [esp + 0x10], ecx
neg edi
sbb edi, edi
test edi, edi
je 0x421cf1
mov ebp, dword [0x471158]
mov ebx, dword [0x47115c]
cmp edi, 0xffffffff
mov ecx, edi
jne 0x421c56
xor edx, edx
test ebx, ebx
jbe 0x421c56
mov eax, ebp
mov ecx, dword [eax]
test ecx, ecx
jne 0x421c56
inc edx
add eax, 4
cmp edx, ebx
jb 0x421c48
mov edi, dword [ecx]
test edi, edi
jne 0x421c76
mov eax, dword [ecx + 4]
inc eax
cmp eax, ebx
jae 0x421c76
lea edx, [ebp + eax*4]
mov edi, dword [edx]
test edi, edi
jne 0x421c76
inc eax
add edx, 4
cmp eax, ebx
jb 0x421c68
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
cmp eax, dword [edx + 4]
jne 0x421ce9
push ecx
call sub.MFC42u.DLL_operatordelete
add esp, 4
push esi
push 0
call dword [sym.imp.USER32.dll_KillTimer]
mov ebp, dword [0x471158]
test ebp, ebp
je 0x421ce3
mov ebx, dword [0x47115c]
mov eax, esi
shr eax, 4
xor edx, edx
div ebx
mov eax, dword [ebp + edx*4]
test eax, eax
lea ecx, [ebp + edx*4]
je 0x421ce9
cmp dword [eax + 8], esi
je 0x421cce
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x421cbf
jmp 0x421ce9
mov edx, dword [eax]
push eax
mov dword [ecx], edx
mov ecx, 0x471154
call fcn.004234a0
mov ebp, dword [0x471158]
mov ebx, dword [0x47115c]
test edi, edi
jne 0x421c39
mov ebx, dword [0x47117c]
neg ebx
sbb ebx, ebx
test ebx, ebx
je 0x421dc2
mov ebp, dword [0x471174]
mov edi, dword [0x471178]
cmp ebx, 0xffffffff
mov edx, ebx
jne 0x421d2c
xor ecx, ecx
test edi, edi
jbe 0x421d2c
mov eax, ebp
mov edx, dword [eax]
test edx, edx
jne 0x421d2c
inc ecx
add eax, 4
cmp ecx, edi
jb 0x421d1e
mov ebx, dword [edx]
test ebx, ebx
jne 0x421d4c
mov eax, dword [edx + 4]
inc eax
cmp eax, edi
jae 0x421d4c
lea ecx, [ebp + eax*4]
mov ebx, dword [ecx]
test ebx, ebx
jne 0x421d4c
inc eax
add ecx, 4
cmp eax, edi
jb 0x421d3e
mov ecx, dword [esp + 0x10]
mov esi, dword [edx + 8]
mov eax, dword [edx + 0xc]
cmp eax, dword [ecx + 4]
jne 0x421dba
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebp, dword [0x471174]
test ebp, ebp
je 0x421db4
mov edi, dword [0x471178]
mov eax, esi
shr eax, 4
xor edx, edx
div edi
mov eax, dword [ebp + edx*4]
test eax, eax
lea ecx, [ebp + edx*4]
je 0x421dba
cmp dword [eax + 8], esi
je 0x421d9f
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x421d90
jmp 0x421dba
mov edx, dword [eax]
push eax
mov dword [ecx], edx
mov ecx, 0x471170
call fcn.004234a0
mov ebp, dword [0x471174]
mov edi, dword [0x471178]
test ebx, ebx
jne 0x421d0f
mov ebx, dword [0x471190]
test ebx, ebx
je 0x421e32
mov edx, dword [esp + 0x10]
mov ecx, ebx
lea edi, [esp + 0x14]
mov eax, ebx
mov ebx, dword [ebx]
lea esi, [ecx + 8]
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
mov esi, dword [edx + 4]
cmp ecx, esi
jne 0x421e2e
cmp eax, dword [0x471190]
jne 0x421e01
mov ecx, dword [eax]
mov dword [0x471190], ecx
jmp 0x421e08
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [edx], ecx
cmp eax, dword [0x471194]
jne 0x421e1b
mov edx, dword [eax + 4]
mov dword [0x471194], edx
jmp 0x421e23
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
push eax
mov ecx, 0x47118c
call fcn.00423510
test ebx, ebx
jne 0x421dcc
mov ebx, dword [0x4711ac]
test ebx, ebx
je 0x421e6c
mov eax, ebx
mov ecx, 0x1b
lea edi, [esp + 0x14]
mov edx, ebx
lea esi, [eax + 8]
mov ebx, dword [ebx]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp eax, dword [ecx + 4]
jne 0x421e68
push edx
mov ecx, 0x4711a8
call fcn.00423430
test ebx, ebx
jne 0x421e3c
mov ebx, dword [0x471214]
test ebx, ebx
je 0x421ec0
mov eax, ebx
mov ecx, 0x16
lea edi, [esp + 0x14]
mov ebp, ebx
mov ebx, dword [ebx]
lea esi, [eax + 8]
mov eax, dword [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax + 4]
cmp edx, ecx
jne 0x421ebc
cmp dword [esp + 0x58], 2
jne 0x421eb1
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x421eb1
push eax
call sub.MFC42u.DLL_operatordelete
add esp, 4
push ebp
mov ecx, 0x471210
call fcn.00423430
test ebx, ebx
jne 0x421e76
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret