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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x41c957
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
push esi
push edi
mov esi, ecx
call fcn.00411030
mov dword [esi + 0x1bc], 1
mov ecx, dword [esi + 0x1c]
mov ax, word [esi + 0x1c]
mov edx, dword [esi + 0xe0]
shr ecx, 0x10
push eax
push ecx
push edx
mov ecx, esi
call fcn.00410c60
cmp eax, 0xffffffff
mov dword [esi + 0x18], eax
jne 0x4122db
push 0
mov ecx, esi
call fcn.00402da0
test al, al
je 0x412276
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
push 0x3333
mov ecx, esi
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
mov al, byte [esi + 0x30]
add esp, 8
test al, al
jne 0x4122cc
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x4122a7
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov edi, eax
jmp 0x4122a9
xor edi, edi
push 0x30
push 0x3345
mov ecx, esi
call fcn.00401ed0
push eax
push 0x3333
mov ecx, esi
call fcn.00401ed0
push eax
mov ecx, edi
call sub.MFC42.DLL_CWnd::MessageBoxA
mov dword [esi + 0x19c], 0xffffffff
jmp 0x412f79
push ebp
push 0
push esi
call fcn.00401f10
add esp, 8
mov ecx, esi
push 0x32c8
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 8
lea eax, [esi + 0x6aa]
mov ecx, esi
push 0xffffffffffffffff
push 0
push 0
push eax
push 0x80
push 0
call fcn.00410d60
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esi + 0x19c], eax
test eax, eax
jne 0x412caf
mov ecx, esi
call fcn.004035a0
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
mov al, byte [esi + 0x22]
test al, al
je 0x41235f
mov ecx, esi
call fcn.00403c20
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
jmp 0x412387
mov eax, dword [esi + 0x670]
mov al, byte [eax + 0xf]
test al, 0x80
je 0x412387
and al, 0x60
mov ecx, esi
cmp al, 0x20
je 0x41234a
call fcn.00404100
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
mov ecx, dword [esi + 0x11c]
lea eax, [esi + 0xaaa]
shl ecx, 5
mov edx, dword [ecx + 0x41e680]
and edx, 0x7f8000
cmp edx, 0x1a8000
jb 0x4123af
mov byte [eax], 0x18
jmp 0x4123b2
mov byte [eax], 3
push 0xffffffffffffffff
push 0
push 0
push eax
push 1
push 1
mov ecx, esi
call fcn.00410ec0
push 0xffffffffffffffff
push 0
lea ebx, [esi + 0x6aa]
push 0
push ebx
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
push 0xa
call edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x32db
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
mov eax, dword [esi + 0xf04]
add esp, 8
cmp eax, 1
jge 0x412413
mov eax, 1
push 0xffffffffffffffff
push 0xa55a
lea ecx, [esi + 0xf0c]
push 0
push ecx
push eax
push 5
mov ecx, esi
call fcn.00410ec0
push 0x32
call edi
push 0xffffffffffffffff
push 0
push 0
push ebx
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
mov al, byte [esi + 0x6aa]
cmp al, 0xe
jne 0x412465
push 0x32dc
jmp 0x41246e
cmp al, 0xf
jne 0x41248e
push 0x32dd
mov ecx, esi
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 8
mov dword [esi + 0x19c], 1
jmp 0x412caf
push 0xa
call edi
lea ebx, [esi + 0xaaa]
push 1
push 0
mov ecx, esi
mov byte [ebx], 0
call fcn.0040eef0
mov ecx, dword [esi + 0x178]
cmp ecx, 0x73
jl 0x4124fe
jne 0x4124bc
cmp dword [esi + 0x17c], 0xd
jl 0x4124fe
cmp ecx, 0x74
jne 0x4124ca
cmp dword [esi + 0x17c], 3
jl 0x4124fe
mov cl, byte [esi + 0x3f]
test cl, cl
je 0x4124e9
and eax, 0xfffe00
mov edx, eax
shr edx, 0x10
xor ecx, ecx
mov byte [ebx], dl
mov cl, ah
mov byte [esi + 0xaab], cl
jmp 0x41251d
mov cl, byte [esi + 0x628]
and ecx, 0xfe
shl ecx, 8
cmp eax, ecx
jle 0x41251d
jmp 0x412511
mov edx, dword [esi + 0x11c]
shl edx, 5
mov ecx, dword [edx + 0x41e68c]
cmp eax, ecx
jle 0x41251d
sub eax, ecx
add eax, 0x1ff
shr eax, 9
mov byte [ebx], al
push 0xffffffffffffffff
push 0xa55a
push 0
push ebx
push 2
push 3
mov ecx, esi
call fcn.00410ec0
push 0xc8
call edi
test byte [esi + 0x624], 2
je 0x41255b
mov eax, dword [esi + 0x11c]
shl eax, 5
mov eax, dword [eax + 0x41e698]
add eax, 0x1ff
shr eax, 9
jmp 0x412578
mov ecx, dword [esi + 0x11c]
xor edx, edx
mov dl, byte [ebx]
shl ecx, 5
mov eax, dword [ecx + 0x41e68c]
add eax, 0x1ff
shr eax, 9
add eax, edx
lea eax, [eax + eax*4]
push 0
push 0
mov ecx, esi
lea ebx, [eax + eax*4]
call fcn.00402040
xor ebp, ebp
test ebx, ebx
jle 0x4125ae
push 0x64
call edi
push ebx
push ebp
mov ecx, esi
call fcn.00402040
mov al, byte [esi + 0x23]
test al, al
je 0x4129b9
add ebp, 0x64
cmp ebp, ebx
jl 0x41258f
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
lea ebx, [esi + 0x6ab]
lea eax, [esi + 0xeaa]
mov ecx, ebx
mov edx, dword [ecx]
mov dword [eax], edx
mov dx, word [ecx + 4]
mov word [eax + 4], dx
mov cl, byte [ecx + 6]
mov byte [eax + 6], cl
mov ecx, esi
call fcn.004074d0
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
mov ecx, esi
call fcn.00407520
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
sub eax, ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], eax
sub esp, 8
fild qword [esp + 0x1c]
mov ecx, esi
fmul dword [0x427718]
fstp qword [esp]
push 0x32df
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
mov al, byte [esi + 0x2f]
add esp, 0x10
test al, al
je 0x4126c6
mov byte [esp + 0x10], 0x26
mov edx, dword [esi + 0x66c]
mov eax, dword [esp + 0x10]
push 0xffffffffffffffff
push 0xa55a
add edx, ebp
push ebp
push edx
push 0x40
push eax
mov ecx, esi
call fcn.00410ec0
push 0x32
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [ebx], 0x54
jne 0x412b19
mov cl, byte [esp + 0x10]
add ebp, 0x40
and cl, 0xdf
cmp ebp, 0x100
mov byte [esp + 0x10], cl
jl 0x41265b
push 0
push 1
mov ecx, esi
call fcn.0040eef0
push 0xa
call edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x32e2
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 8
mov ecx, esi
push 0
push 0
call fcn.00402040
mov bl, byte [esi + 0x27]
mov eax, dword [esi + 0x100]
xor ebp, ebp
neg bl
sbb bl, bl
and bl, 0x80
add bl, 0x22
test eax, eax
mov byte [esp + 0x10], bl
jle 0x4127e1
sub eax, ebp
mov ecx, 0x10
cmp eax, 0x10
jg 0x41272f
mov ecx, eax
mov eax, dword [esi + 0x65c]
xor edx, edx
add eax, ebp
test ecx, ecx
jle 0x412748
cmp byte [eax + edx], 0xff
jne 0x412748
inc edx
cmp edx, ecx
jl 0x41273d
cmp edx, ecx
sete dl
test dl, dl
jne 0x4127a9
push 0xffffffffffffffff
push 0xa55a
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.00410ec0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [esi + 0x6ab], 0x54
jne 0x412b19
jmp 0x4127af
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esi + 0x100]
mov ecx, esi
push edx
push ebp
call fcn.00402040
mov al, byte [esi + 0x23]
add ebp, 0x10
and bl, 0xdf
test al, al
mov byte [esp + 0x10], bl
je 0x4129b9
mov eax, dword [esi + 0x100]
cmp ebp, eax
jl 0x412721
mov ebp, dword [esi + 0x668]
mov al, byte [ebp]
inc ebp
cmp al, 0x5a
jne 0x412899
mov bl, 0x12
mov cx, word [ebp]
mov al, byte [ebp + 3]
add ebp, 2
xor edx, edx
test al, al
mov al, byte [esi + 0x3f]
mov byte [esp + 0x10], 2
sete dl
test al, dl
je 0x412816
mov byte [esp + 0x10], bl
mov al, byte [ebp + 2]
mov edx, dword [esp + 0x10]
add ebp, 2
push 0xffffffffffffffff
push 0xa55a
push ecx
xor cx, cx
inc ebp
mov cl, al
push ebp
push ecx
push edx
mov ecx, esi
mov byte [esp + 0x2c], al
call fcn.00410ec0
mov eax, dword [esp + 0x14]
push 0x23
and eax, 0xff
add ebp, eax
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [esi + 0x6ab], 0x54
jne 0x412b19
mov al, byte [esi + 0x23]
test al, al
je 0x4129b9
mov cl, byte [ebp]
inc ebp
cmp cl, 0x5a
je 0x4127f5
push 0
push 0
mov ecx, esi
call fcn.00402040
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
sub eax, edx
sub esp, 8
mov dword [esp + 0x1c], eax
mov ecx, esi
fild qword [esp + 0x1c]
fmul dword [0x427718]
fstp qword [esp]
push 0x32df
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
mov al, byte [esi + 0x22]
add esp, 0x10
test al, al
jne 0x412ca5
mov edx, dword [esi + 0x670]
test byte [edx + 0xf], 0x80
je 0x412ca5
push 0xa
call edi
call ebx
push 0x32e3
mov ecx, esi
mov ebx, eax
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
mov eax, dword [esi + 0x178]
add esp, 8
cmp eax, 0x73
jne 0x412a33
cmp dword [esi + 0x17c], 2
jge 0x412a33
mov byte [esi + 0xaaa], 0
mov al, byte [esi + 0xf00]
test al, al
je 0x4129c8
mov eax, dword [esi + 0xf08]
cmp eax, 1
jge 0x41295a
mov eax, 1
push 0xffffffffffffffff
push 0xa55a
lea ecx, [esi + 0x100c]
push 0
push ecx
push eax
push 7
mov ecx, esi
call fcn.00410ec0
push 0x64
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [esi + 0x6ab], 0x54
je 0x4129c8
mov dword [esi + 0x19c], 1
jmp 0x412caf
mov dword [esi + 0x19c], 3
jmp 0x412caf
push 0xffffffffffffffff
lea eax, [esi + 0xaaf]
push 0xa55a
push 0
push eax
push eax
mov ecx, esi
call fcn.00410110
push eax
push 4
mov ecx, esi
call fcn.00410ec0
push 0x32
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [esi + 0x6ab], 0x54
je 0x412b28
mov dword [esi + 0x19c], 1
jmp 0x412caf
push 0xffffffffffffffff
lea eax, [esi + 0xaaf]
push 0xa55a
push 0
push eax
push eax
mov ecx, esi
call fcn.00410110
push eax
push 4
mov ecx, esi
call fcn.00410ec0
push 0x64
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [esi + 0x6ab], 0x54
je 0x412a9a
mov dword [esi + 0x19c], 1
jmp 0x412caf
mov al, byte [esi + 0xf00]
test al, al
je 0x412b28
mov eax, dword [esi + 0xf08]
test eax, eax
je 0x412b28
mov byte [esi + 0xaaa], 0
mov eax, dword [esi + 0xf08]
cmp eax, 1
jge 0x412ac9
mov eax, 1
push 0xffffffffffffffff
push 0xa55a
lea edx, [esi + 0x100c]
push 0
push edx
push eax
push 7
mov ecx, esi
call fcn.00410ec0
push 0x64
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6aa]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00410d60
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x412caf
cmp byte [esi + 0x6ab], 0x54
je 0x412b28
mov dword [esi + 0x19c], 1
jmp 0x412caf
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
sub esp, 8
fild qword [esp + 0x1c]
mov ecx, esi
fmul dword [0x427718]
fstp qword [esp]
push 0x32df
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
mov al, byte [esi + 0x3d]
add esp, 0x10
test al, al
jne 0x412b7f
push 0x32d0
mov ecx, esi
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 8
mov ecx, 0x10
or eax, 0xffffffff
lea edi, [esi + 0x6aa]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x11c]
shl eax, 5
mov ecx, dword [eax + 0x41e680]
and ecx, 0x7f8000
cmp ecx, 0x168000
jb 0x412c29
mov eax, dword [esi + 0x118]
mov cl, byte [esi + 0x118]
shr eax, 0x10
xor edx, edx
mov byte [esi + 0x6ac], al
mov dl, ah
xor eax, eax
mov al, byte [esi + 0x119]
mov byte [esi + 0x6ab], dl
mov dl, byte [esi + 0xacf]
mov byte [esi + 0x6ad], al
mov al, byte [esi + 0xad2]
mov byte [esi + 0x6ae], cl
mov cl, byte [esi + 0xad3]
mov byte [esi + 0x6b3], dl
mov dl, byte [esi + 0xad4]
mov byte [esi + 0x6b6], al
mov al, byte [esi + 0xad5]
mov byte [esi + 0x6b7], cl
mov cl, byte [esi + 0xad6]
mov byte [esi + 0x6b8], dl
mov byte [esi + 0x6b9], al
mov byte [esi + 0x6ba], cl
jmp 0x412c98
mov al, byte [esi + 0xaed]
mov dl, byte [esi + 0xaec]
mov byte [esi + 0x6b0], al
mov eax, dword [esi + 0x118]
mov cl, byte [esi + 0xaee]
mov byte [esi + 0x6af], dl
shr eax, 0x10
xor edx, edx
mov byte [esi + 0x6b3], al
mov dl, ah
xor eax, eax
mov al, byte [esi + 0x119]
mov byte [esi + 0x6b1], cl
mov cl, byte [esi + 0x118]
mov byte [esi + 0x6b2], dl
mov dl, byte [esi + 0xace]
mov byte [esi + 0x6b4], al
mov al, byte [esi + 0xae6]
mov byte [esi + 0x6b5], cl
mov byte [esi + 0x6b6], dl
mov byte [esi + 0x6cf], al
mov ecx, esi
call fcn.0040c440
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esi + 0x19c], 0
or ebx, 0xffffffff
lea eax, [esi + 0xaaa]
push ebx
push 0
push 0
push eax
push 1
push 0xff
mov ecx, esi
mov byte [eax], 0
call fcn.00410ec0
push 0x32
call edi
mov eax, dword [esi + 0x19c]
pop ebp
cmp eax, 3
ja case.default.0x412ce3
jmp dword [eax*4 + 0x412fa0]
push 1
mov ecx, esi
call fcn.00402da0
test al, al
je 0x412cff
push 0x40
call dword [sym.imp.USER32.dll_MessageBeep]
lea ecx, [esp + 0xc]
push str._Y__m__d__H:_M:_S
lea edx, [esp + 0x38]
push ecx
push edx
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, eax
call sub.MFC42.DLL_CTime::Format
mov eax, dword [eax]
mov ecx, esi
push eax
push 0x3330
mov dword [esp + 0x150], 0
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 0xc
lea ecx, [esp + 0xc]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x412f68
push 0
mov ecx, esi
call fcn.00402da0
test al, al
je 0x412d72
mov edi, dword [sym.imp.USER32.dll_MessageBeep]
push 0x10
call edi
push 0x10
call edi
push 0x10
call edi
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x412d84
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x412d86
xor eax, eax
lea ecx, [esp + 0x40]
push 0xff
push ecx
mov ecx, eax
call sub.MFC42.DLL_CWnd::GetWindowTextA
push 0xa
lea edx, [esp + 0x44]
push str.STC_ISP__V
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x412e2e
mov edi, dword [sym.imp.MSVCRT.dll_strchr]
lea eax, [esp + 0x40]
push 0x29
push eax
call edi
add esp, 8
test eax, eax
je 0x412e2e
lea ecx, [esp + 0x40]
push 0x29
push ecx
call edi
add esp, 8
mov byte [eax], 0
lea edx, [esp + 0x28]
lea eax, [esp + 0x2c]
push str._Y__m__d__H:_M:_S
push edx
push eax
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, eax
call sub.MFC42.DLL_CTime::Format
mov ecx, dword [eax]
lea edx, [esp + 0x4a]
push ecx
push edx
push 0x3331
mov ecx, esi
mov dword [esp + 0x154], 1
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 0x10
lea ecx, [esp + 0x28]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x412f68
lea eax, [esp + 0x24]
push str._Y__m__d__H:_M:_S
lea ecx, [esp + 0x40]
push eax
push ecx
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, eax
call sub.MFC42.DLL_CTime::Format
mov edx, dword [eax]
mov ecx, esi
push edx
push 0x435fa8
push 0x3331
mov dword [esp + 0x154], 2
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 0x10
lea ecx, [esp + 0x24]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x412f68
push 0
mov ecx, esi
call fcn.00402da0
test al, al
je 0x412e9c
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
lea eax, [esp + 0x20]
push str._Y__m__d__H:_M:_S
lea ecx, [esp + 0x34]
push eax
push ecx
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, eax
call sub.MFC42.DLL_CTime::Format
mov edx, dword [eax]
mov ecx, esi
push edx
push 0x334c
mov dword [esp + 0x150], 3
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 0xc
lea ecx, [esp + 0x20]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x412f68
push 0
mov ecx, esi
call fcn.00402da0
test al, al
je 0x412f02
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
lea eax, [esp + 0x1c]
push str._Y__m__d__H:_M:_S
lea ecx, [esp + 0x3c]
push eax
push ecx
call sub.MFC42.DLL_CTime::GetTickCount
mov ecx, eax
call sub.MFC42.DLL_CTime::Format
mov edx, dword [eax]
mov ecx, esi
push edx
push 0x3332
mov dword [esp + 0x150], 4
call fcn.00401ed0
push eax
push esi
call fcn.00401f10
add esp, 0xc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x412f68
push 0
mov ecx, esi
call fcn.00402da0
test al, al
je 0x412f68
push 0x40
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x412f79
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x18], ebx
mov ecx, esi
call fcn.00411140
mov eax, dword [esi + 0x19c]
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x140
ret