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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x420aa7
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
push esi
push edi
mov esi, ecx
call fcn.00412620
mov dword [esi + 0x1bc], 1
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0xe0]
push eax
push ecx
mov ecx, esi
call fcn.00412330
cmp eax, 0xffffffff
mov dword [esi + 0x18], eax
jne 0x4138c3
push 0
mov ecx, esi
call fcn.00404050
test al, al
je 0x41385e
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
push 0x5273
mov ecx, esi
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov al, byte [esi + 0x30]
add esp, 8
test al, al
jne 0x4138b4
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x41388f
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov edi, eax
jmp 0x413891
xor edi, edi
push 0x30
push 0x5285
mov ecx, esi
call fcn.00402fa0
push eax
push 0x5273
mov ecx, esi
call fcn.00402fa0
push eax
mov ecx, edi
call sub.MFC42.DLL_CWnd::MessageBoxA
mov dword [esi + 0x19c], 0xffffffff
jmp 0x414565
push ebp
push 0
push esi
call fcn.00402fe0
add esp, 8
mov ecx, esi
push 0x5208
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 8
lea eax, [esi + 0x6b6]
mov ecx, esi
push 0xffffffffffffffff
push 0
push 0
push eax
push 0x80
push 0
call fcn.00412350
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esi + 0x19c], eax
test eax, eax
jne 0x41429b
mov ecx, esi
call fcn.004048a0
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
mov al, byte [esi + 0x22]
test al, al
je 0x413947
mov ecx, esi
call fcn.00404f30
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
jmp 0x41396f
mov eax, dword [esi + 0x678]
mov al, byte [eax + 0xf]
test al, 0x80
je 0x41396f
and al, 0x60
mov ecx, esi
cmp al, 0x20
je 0x413932
call fcn.00405470
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
mov ecx, dword [esi + 0x11c]
lea eax, [esi + 0xab6]
shl ecx, 5
mov edx, dword [ecx + 0x422718]
and edx, 0x7f8000
cmp edx, 0x1a8000
jb 0x413997
mov byte [eax], 0x18
jmp 0x41399a
mov byte [eax], 3
push 0xffffffffffffffff
push 0
push 0
push eax
push 1
push 1
mov ecx, esi
call fcn.004124b0
push 0xffffffffffffffff
push 0
lea ebx, [esi + 0x6b6]
push 0
push ebx
push 0x80
push 0
mov ecx, esi
call fcn.00412350
push 0xa
call edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x521b
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov eax, dword [esi + 0xf10]
add esp, 8
cmp eax, 1
jge 0x4139fb
mov eax, 1
push 0xffffffffffffffff
push 0xa55a
lea ecx, [esi + 0xf18]
push 0
push ecx
push eax
push 5
mov ecx, esi
call fcn.004124b0
push 0x32
call edi
push 0xffffffffffffffff
push 0
push 0
push ebx
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
mov al, byte [esi + 0x6b6]
cmp al, 0xe
jne 0x413a4d
push 0x521c
jmp 0x413a56
cmp al, 0xf
jne 0x413a76
push 0x521d
mov ecx, esi
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 8
mov dword [esi + 0x19c], 1
jmp 0x41429b
push 0xa
call edi
lea ebx, [esi + 0xab6]
push 1
push 0
mov ecx, esi
mov byte [ebx], 0
call fcn.00410770
mov ecx, dword [esi + 0x178]
cmp ecx, 0x73
jl 0x413ae6
jne 0x413aa4
cmp dword [esi + 0x17c], 0xd
jl 0x413ae6
cmp ecx, 0x74
jne 0x413ab2
cmp dword [esi + 0x17c], 3
jl 0x413ae6
mov cl, byte [esi + 0x3f]
test cl, cl
je 0x413ad1
and eax, 0xfffe00
mov edx, eax
shr edx, 0x10
xor ecx, ecx
mov byte [ebx], dl
mov cl, ah
mov byte [esi + 0xab7], cl
jmp 0x413b05
mov cl, byte [esi + 0x630]
and ecx, 0xfe
shl ecx, 8
cmp eax, ecx
jle 0x413b05
jmp 0x413af9
mov edx, dword [esi + 0x11c]
shl edx, 5
mov ecx, dword [edx + 0x422724]
cmp eax, ecx
jle 0x413b05
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.004124b0
push 0xc8
call edi
test byte [esi + 0x62c], 2
je 0x413b43
mov eax, dword [esi + 0x11c]
shl eax, 5
mov eax, dword [eax + 0x422730]
add eax, 0x1ff
shr eax, 9
jmp 0x413b60
mov ecx, dword [esi + 0x11c]
xor edx, edx
mov dl, byte [ebx]
shl ecx, 5
mov eax, dword [ecx + 0x422724]
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.00403110
xor ebp, ebp
test ebx, ebx
jle 0x413b96
push 0x64
call edi
push ebx
push ebp
mov ecx, esi
call fcn.00403110
mov al, byte [esi + 0x23]
test al, al
je 0x413fa5
add ebp, 0x64
cmp ebp, ebx
jl 0x413b77
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
lea ebx, [esi + 0x6b7]
lea eax, [esi + 0xeb6]
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.00408a50
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
mov ecx, esi
call fcn.00408ab0
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 [0x42b9f0]
fstp qword [esp]
push 0x521f
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov al, byte [esi + 0x2f]
add esp, 0x10
test al, al
je 0x413cb0
mov byte [esp + 0x10], 0x26
mov ecx, dword [esi + 0x674]
mov eax, dword [esp + 0x10]
mov edx, ebp
push 0xffffffffffffffff
push 0xa55a
add edx, ecx
push ebp
push edx
push 0x40
push eax
mov ecx, esi
call fcn.004124b0
push 0x32
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [ebx], 0x54
jne 0x414105
mov cl, byte [esp + 0x10]
add ebp, 0x40
and cl, 0xdf
cmp ebp, 0x100
mov byte [esp + 0x10], cl
jl 0x413c43
push 0
push 1
mov ecx, esi
call fcn.00410770
push 0xa
call edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x5222
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 8
mov ecx, esi
push 0
push 0
call fcn.00403110
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 0x413dcd
sub eax, ebp
mov ecx, 0x10
cmp eax, 0x10
jg 0x413d19
mov ecx, eax
mov edx, dword [esi + 0x664]
mov eax, ebp
add eax, edx
xor edx, edx
test ecx, ecx
jle 0x413d34
cmp byte [eax + edx], 0xff
jne 0x413d34
inc edx
cmp edx, ecx
jl 0x413d29
cmp edx, ecx
sete dl
test dl, dl
jne 0x413d95
push 0xffffffffffffffff
push 0xa55a
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.004124b0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [esi + 0x6b7], 0x54
jne 0x414105
jmp 0x413d9b
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esi + 0x100]
mov ecx, esi
push edx
push ebp
call fcn.00403110
mov al, byte [esi + 0x23]
add ebp, 0x10
and bl, 0xdf
test al, al
mov byte [esp + 0x10], bl
je 0x413fa5
mov eax, dword [esi + 0x100]
cmp ebp, eax
jl 0x413d0b
mov ebp, dword [esi + 0x670]
mov al, byte [ebp]
inc ebp
cmp al, 0x5a
jne 0x413e85
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 0x413e02
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.004124b0
mov eax, dword [esp + 0x14]
push 0x23
and eax, 0xff
add ebp, eax
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [esi + 0x6b7], 0x54
jne 0x414105
mov al, byte [esi + 0x23]
test al, al
je 0x413fa5
mov cl, byte [ebp]
inc ebp
cmp cl, 0x5a
je 0x413de1
push 0
push 0
mov ecx, esi
call fcn.00403110
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 [0x42b9f0]
fstp qword [esp]
push 0x521f
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov al, byte [esi + 0x22]
add esp, 0x10
test al, al
jne 0x414291
mov edx, dword [esi + 0x678]
test byte [edx + 0xf], 0x80
je 0x414291
push 0xa
call edi
call ebx
push 0x5223
mov ecx, esi
mov ebx, eax
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov eax, dword [esi + 0x178]
add esp, 8
cmp eax, 0x73
jne 0x41401f
cmp dword [esi + 0x17c], 2
jge 0x41401f
mov byte [esi + 0xab6], 0
mov al, byte [esi + 0xf0c]
test al, al
je 0x413fb4
mov eax, dword [esi + 0xf14]
cmp eax, 1
jge 0x413f46
mov eax, 1
push 0xffffffffffffffff
push 0xa55a
lea ecx, [esi + 0x1018]
push 0
push ecx
push eax
push 7
mov ecx, esi
call fcn.004124b0
push 0x64
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [esi + 0x6b7], 0x54
je 0x413fb4
mov dword [esi + 0x19c], 1
jmp 0x41429b
mov dword [esi + 0x19c], 3
jmp 0x41429b
push 0xffffffffffffffff
lea eax, [esi + 0xabb]
push 0xa55a
push 0
push eax
push eax
mov ecx, esi
call fcn.00411990
push eax
push 4
mov ecx, esi
call fcn.004124b0
push 0x32
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [esi + 0x6b7], 0x54
je 0x414114
mov dword [esi + 0x19c], 1
jmp 0x41429b
push 0xffffffffffffffff
lea eax, [esi + 0xabb]
push 0xa55a
push 0
push eax
push eax
mov ecx, esi
call fcn.00411990
push eax
push 4
mov ecx, esi
call fcn.004124b0
push 0x64
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [esi + 0x6b7], 0x54
je 0x414086
mov dword [esi + 0x19c], 1
jmp 0x41429b
mov al, byte [esi + 0xf0c]
test al, al
je 0x414114
mov eax, dword [esi + 0xf14]
test eax, eax
je 0x414114
mov byte [esi + 0xab6], 0
mov eax, dword [esi + 0xf14]
cmp eax, 1
jge 0x4140b5
mov eax, 1
push 0xffffffffffffffff
push 0xa55a
lea edx, [esi + 0x1018]
push 0
push edx
push eax
push 7
mov ecx, esi
call fcn.004124b0
push 0x64
call edi
push 0xffffffffffffffff
push 0
lea eax, [esi + 0x6b6]
push 0
push eax
push 0x80
push 0
mov ecx, esi
call fcn.00412350
test eax, eax
mov dword [esi + 0x19c], eax
jne 0x41429b
cmp byte [esi + 0x6b7], 0x54
je 0x414114
mov dword [esi + 0x19c], 1
jmp 0x41429b
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 [0x42b9f0]
fstp qword [esp]
push 0x521f
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
mov al, byte [esi + 0x3d]
add esp, 0x10
test al, al
jne 0x41416b
push 0x5210
mov ecx, esi
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 8
mov ecx, 0x10
or eax, 0xffffffff
lea edi, [esi + 0x6b6]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x11c]
shl eax, 5
mov ecx, dword [eax + 0x422718]
and ecx, 0x7f8000
cmp ecx, 0x168000
jb 0x414215
mov eax, dword [esi + 0x118]
mov cl, byte [esi + 0x118]
shr eax, 0x10
xor edx, edx
mov byte [esi + 0x6b8], al
mov dl, ah
xor eax, eax
mov al, byte [esi + 0x119]
mov byte [esi + 0x6b7], dl
mov dl, byte [esi + 0xadb]
mov byte [esi + 0x6b9], al
mov al, byte [esi + 0xade]
mov byte [esi + 0x6ba], cl
mov cl, byte [esi + 0xadf]
mov byte [esi + 0x6bf], dl
mov dl, byte [esi + 0xae0]
mov byte [esi + 0x6c2], al
mov al, byte [esi + 0xae1]
mov byte [esi + 0x6c3], cl
mov cl, byte [esi + 0xae2]
mov byte [esi + 0x6c4], dl
mov byte [esi + 0x6c5], al
mov byte [esi + 0x6c6], cl
jmp 0x414284
mov al, byte [esi + 0xaf9]
mov dl, byte [esi + 0xaf8]
mov byte [esi + 0x6bc], al
mov eax, dword [esi + 0x118]
mov cl, byte [esi + 0xafa]
mov byte [esi + 0x6bb], dl
shr eax, 0x10
xor edx, edx
mov byte [esi + 0x6bf], al
mov dl, ah
xor eax, eax
mov al, byte [esi + 0x119]
mov byte [esi + 0x6bd], cl
mov cl, byte [esi + 0x118]
mov byte [esi + 0x6be], dl
mov dl, byte [esi + 0xada]
mov byte [esi + 0x6c0], al
mov al, byte [esi + 0xaf2]
mov byte [esi + 0x6c1], cl
mov byte [esi + 0x6c2], dl
mov byte [esi + 0x6db], al
mov ecx, esi
call fcn.0040db40
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esi + 0x19c], 0
or ebx, 0xffffffff
lea eax, [esi + 0xab6]
push ebx
push 0
push 0
push eax
push 1
push 0xff
mov ecx, esi
mov byte [eax], 0
call fcn.004124b0
push 0x32
call edi
mov eax, dword [esi + 0x19c]
pop ebp
cmp eax, 3
ja case.default.0x4142cf
jmp dword [eax*4 + 0x41458c]
push 1
mov ecx, esi
call fcn.00404050
test al, al
je 0x4142eb
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 0x5270
mov dword [esp + 0x150], 0
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 0xc
lea ecx, [esp + 0xc]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x414554
push 0
mov ecx, esi
call fcn.00404050
test al, al
je 0x41435e
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 0x414370
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x414372
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.STCAI_ISP__V
push edx
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x41441a
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 0x41441a
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 0x5271
mov ecx, esi
mov dword [esp + 0x154], 1
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 0x10
lea ecx, [esp + 0x28]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x414554
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 0x43b508
push 0x5271
mov dword [esp + 0x154], 2
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 0x10
lea ecx, [esp + 0x24]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x414554
push 0
mov ecx, esi
call fcn.00404050
test al, al
je 0x414488
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 0x528c
mov dword [esp + 0x150], 3
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 0xc
lea ecx, [esp + 0x20]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x414554
push 0
mov ecx, esi
call fcn.00404050
test al, al
je 0x4144ee
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 0x5272
mov dword [esp + 0x150], 4
call fcn.00402fa0
push eax
push esi
call fcn.00402fe0
add esp, 0xc
lea ecx, [esp + 0x1c]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::CString
jmp 0x414554
push 0
mov ecx, esi
call fcn.00404050
test al, al
je 0x414554
push 0x40
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x414565
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x18], ebx
mov ecx, esi
call fcn.00412730
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