Function at 0x40c7b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4510f0
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push ebp
push esi
push edi
mov eax, dword [0x461cb4]
xor eax, esp
push eax
lea eax, [esp + 0x5c]
mov dword fs:[0], eax
mov esi, dword [esp + 0x6c]
push 0x4564b6
lea ebx, [esp + 0x18]
call fcn.00401260
xor ebx, ebx
push esi
mov dword [esp + 0x68], ebx
call fcn.0040db00
add esp, 4
call fcn.00437d10
cmp eax, ebx
mov dword [esp + 0x28], ebx
jle 0x40d1b1
mov ebp, dword [esp + 0x14]
lea ecx, [ecx]
push esi
call fcn.0040c190
add esp, 4
test eax, eax
jne 0x40d20b
imul esi, esi, 0xf3
mov eax, dword [esi + 0x4664ea]
push 0x4567b0
push eax
call fcn.00433544
add esp, 8
cmp eax, ebx
sete al
test al, al
je 0x40c9b4
mov edi, dword [esi + 0x466491]
mov eax, dword [edi]
mov edx, dword [eax + 0x7c]
lea ecx, [esp + 0x2c]
push ecx
push 0x4c
push 0x3a
push edi
mov dword [esp + 0x3c], ebx
call edx
cmp eax, ebx
jge 0x40c873
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40c87e
push 0x64
jmp 0x40c89f
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x63
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x64
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x54]
lea edx, [esp + 0x2c]
push edx
push 0x45
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40c8ce
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40c8d9
push 0x64
jmp 0x40c8fa
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x63
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x64
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x5c]
lea edx, [esp + 0x2c]
push edx
push edi
mov dword [esp + 0x34], ebx
call eax
cmp eax, ebx
jge 0x40c927
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40c932
push 0x64
jmp 0x40c953
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x63
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x64
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x58]
lea edx, [esp + 0x2c]
push edx
push 0x45
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40c982
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40c98d
push 0x64
jmp 0x40c9ae
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x63
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x64
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
fld1
sub esp, 8
fstp qword [esp]
mov dword [esi + 0x466485], 0x194a
push ebx
push ecx
mov dword [esp + 0x3c], esp
mov edi, esp
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.Color_GameBackground
call fcn.0041ed40
call fcn.004128a0
mov edi, dword [esi + 0x466491]
add esp, 4
push 0x11
push 0x15e
push 0x10
push 0x15d
lea ecx, [esp + 0x38]
call fcn.00401850
mov edi, eax
lea ecx, [esp + 0x14]
cmp ecx, edi
je 0x40ca5b
cmp ebp, ebx
je 0x40ca47
lea edx, [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40ca47
mov eax, dword [ebp]
cmp eax, ebx
je 0x40ca2e
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x40ca3e
push eax
call fcn.00423ef9
add esp, 4
push ebp
call fcn.00423ef9
add esp, 4
mov ebp, dword [edi]
cmp ebp, ebx
mov dword [esp + 0x14], ebp
je 0x40ca5b
lea eax, [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x40ca9f
lea ecx, [edi + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40ca9b
cmp edi, ebx
je 0x40ca9b
mov eax, dword [edi]
cmp eax, ebx
je 0x40ca82
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x40ca92
push eax
call fcn.00423ef9
add esp, 4
push edi
call fcn.00423ef9
add esp, 4
mov dword [esp + 0x18], ebx
cmp ebp, ebx
push ecx
mov eax, esp
mov dword [esp + 0x30], esp
mov dword [eax], ebp
je 0x40cab6
lea edx, [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea eax, [esp + 0x3c]
push eax
call fcn.00412cc0
add esp, 8
cmp dword [esp + 0x38], ebx
jg 0x40d219
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40cadb
push 0x12c
jmp 0x40cb02
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x12b
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x12c
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7c]
lea edx, [esp + 0x2c]
push edx
push 0x4d
push 0x62
push edi
mov dword [esp + 0x3c], ebx
call eax
cmp eax, ebx
jge 0x40cb33
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40cb3e
push 0x64
jmp 0x40cb5f
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x63
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x64
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x5c]
lea edx, [esp + 0x2c]
push edx
push edi
mov dword [esp + 0x34], ebx
call eax
cmp eax, ebx
jge 0x40cb8c
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40cb97
push 0x64
jmp 0x40cbb8
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x63
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x64
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x4664aa]
push 0x456da8
push eax
call fcn.00433544
add esp, 8
cmp eax, ebx
sete al
test al, al
je 0x40cfa5
fld qword [0x458470]
sub esp, 8
fstp qword [esp]
push ebx
push ecx
mov edi, esp
mov dword [esp + 0x3c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push str.Color_GameBackground
call fcn.0041ed40
call fcn.004128a0
mov byte [esp + 0x78], 3
mov ebx, esp
mov dword [esp + 0x44], esp
push str.weapon.bmp
call fcn.00401260
push 0x300
push 0x400
xor ebx, ebx
push ebx
push ebx
lea ecx, [esp + 0x40]
push ecx
mov byte [esp + 0x8c], bl
mov ecx, dword [esi + 0x466491]
call fcn.00401940
mov edi, eax
lea edx, [esp + 0x14]
cmp edx, edi
je 0x40cc9a
cmp ebp, ebx
je 0x40cc86
lea eax, [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40cc86
mov eax, dword [ebp]
cmp eax, ebx
je 0x40cc6d
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x40cc7d
push eax
call fcn.00423ef9
add esp, 4
push ebp
call fcn.00423ef9
add esp, 4
mov ebp, dword [edi]
cmp ebp, ebx
mov dword [esp + 0x14], ebp
je 0x40cc9a
lea ecx, [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edi, dword [esp + 0x1c]
cmp edi, ebx
je 0x40ccde
lea edx, [edi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40ccda
cmp edi, ebx
je 0x40ccda
mov eax, dword [edi]
cmp eax, ebx
je 0x40ccc1
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x40ccd1
push eax
call fcn.00423ef9
add esp, 4
push edi
call fcn.00423ef9
add esp, 4
mov dword [esp + 0x1c], ebx
cmp ebp, ebx
push ecx
mov eax, esp
mov dword [esp + 0x34], esp
mov dword [eax], ebp
je 0x40ccf5
lea eax, [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0x44]
push ecx
call fcn.00412cc0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 8
cmp ecx, ebx
mov dword [esp + 0x34], edx
jg 0x40cfa3
fld qword [0x458470]
sub esp, 8
fstp qword [esp]
push 0
push ecx
mov edi, esp
mov dword [esp + 0x40], esp
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.Color_GameBackground
call fcn.0041ed40
call fcn.004128a0
mov byte [esp + 0x78], 4
mov ebx, esp
mov dword [esp + 0x40], esp
push str.weapon.bmp
call fcn.00401260
push 0x300
push 0x400
xor ebx, ebx
push ebx
push ebx
lea eax, [esp + 0x44]
mov byte [esp + 0x88], bl
mov ecx, dword [esi + 0x466491]
push eax
call fcn.00401940
mov edi, eax
lea ecx, [esp + 0x14]
cmp ecx, edi
je 0x40cdcf
cmp ebp, ebx
je 0x40cdbb
lea edx, [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40cdbb
mov eax, dword [ebp]
cmp eax, ebx
je 0x40cda2
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x40cdb2
push eax
call fcn.00423ef9
add esp, 4
push ebp
call fcn.00423ef9
add esp, 4
mov ebp, dword [edi]
cmp ebp, ebx
mov dword [esp + 0x14], ebp
je 0x40cdcf
lea eax, [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edi, dword [esp + 0x20]
cmp edi, ebx
je 0x40ce13
lea ecx, [edi + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40ce0f
cmp edi, ebx
je 0x40ce0f
mov eax, dword [edi]
cmp eax, ebx
je 0x40cdf6
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x40ce06
push eax
call fcn.00423ef9
add esp, 4
push edi
call fcn.00423ef9
add esp, 4
mov dword [esp + 0x20], ebx
cmp ebp, ebx
push ecx
mov eax, esp
mov dword [esp + 0x34], esp
mov dword [eax], ebp
je 0x40ce2a
lea edx, [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea eax, [esp + 0x4c]
push eax
call fcn.00412cc0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 8
cmp ecx, ebx
mov dword [esp + 0x34], edx
jg 0x40cfa3
fld qword [0x458470]
sub esp, 8
fstp qword [esp]
push 0
push ecx
mov edi, esp
mov dword [esp + 0x40], esp
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.Color_GameBackground
call fcn.0041ed40
call fcn.004128a0
mov byte [esp + 0x78], 5
mov ebx, esp
mov dword [esp + 0x40], esp
push str.weapon.bmp
call fcn.00401260
push 0x300
push 0x400
push 0
push 0
lea eax, [esp + 0x48]
mov byte [esp + 0x88], 0
mov ecx, dword [esi + 0x466491]
push eax
call fcn.00401940
mov ebx, eax
lea edi, [esp + 0x14]
call fcn.004013c0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40cf03
mov edi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x40cefb
test edi, edi
je 0x40cefb
mov eax, dword [edi]
test eax, eax
je 0x40cee2
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
test eax, eax
je 0x40cef2
push eax
call fcn.00423ef9
add esp, 4
push edi
call fcn.00423ef9
add esp, 4
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x14]
test ebp, ebp
push ecx
mov eax, esp
mov dword [esp + 0x34], esp
mov dword [eax], ebp
je 0x40cf1e
lea ecx, [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea edx, [esp + 0x54]
push edx
call fcn.00412cc0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
add esp, 8
test ecx, ecx
mov dword [esp + 0x34], eax
jg 0x40cfa3
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x456dc0
call fcn.0041ed40
mov byte [esp + 0x68], 6
mov eax, dword [esi + 0x466499]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov edi, esp
push eax
call fcn.00420060
add eax, 0x10
mov dword [edi], eax
xor ebx, ebx
add esp, 4
mov byte [esp + 0x6c], bl
call fcn.0041af00
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
add esp, 8
lea edx, [esp + 0x2c]
push edx
push 0x70
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40cfa3
push 0x4582d4
push edi
push eax
call fcn.0044a580
xor ebx, ebx
cmp dword [esi + 0x46652e], 1
jne 0x40d000
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
lea edx, [esp + 0x2c]
push edx
push 0x71
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40cfd7
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
lea edx, [esp + 0x2c]
push edx
push 0x73
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40d000
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esi + 0x46651e], 1
jne 0x40d133
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
lea edx, [esp + 0x2c]
push edx
push 0x46
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40d036
push 0x4582d4
push edi
push eax
call fcn.0044a580
cmp dword [esp + 0x6c], 0xffffffff
jne 0x40d044
push 0x7d0
jmp 0x40d06b
call fcn.00432b22
mov ecx, dword [esi + 0x4664ba]
cdq
sub ecx, 0x7cf
idiv ecx
mov eax, dword [esi + 0x466481]
add eax, 1
add edx, 0x7d0
imul eax, edx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
lea edx, [esp + 0x2c]
push edx
push 0x46
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40d09a
push 0x4582d4
push edi
push eax
call fcn.0044a580
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x456dcc
call fcn.0041ed40
mov byte [esp + 0x68], 7
mov edi, dword [esi + 0x466499]
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub edi, 0x10
mov dword [esp + 0x34], esp
mov ebp, esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x40d0e4
cmp eax, dword [edi]
jne 0x40d0e4
mov ebx, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x40d11a
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x40d2bf
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 4]
add eax, 1
push eax
add edi, 0x10
push edi
push eax
lea ecx, [ebx + 0x10]
push ecx
call fcn.0043149e
add esp, 0x10
add ebx, 0x10
mov dword [ebp], ebx
mov byte [esp + 0x6c], 0
call fcn.0041af00
mov ebp, dword [esp + 0x1c]
add esp, 8
xor ebx, ebx
mov eax, dword [esi + 0x4664aa]
push 0x456de0
push eax
call fcn.00433544
add esp, 8
cmp eax, ebx
sete al
test al, al
jne 0x40d171
mov eax, dword [esi + 0x4664e6]
push 0x4567b0
push eax
call fcn.00433544
add esp, 8
cmp eax, ebx
sete al
test al, al
je 0x40d449
mov edx, dword [esp + 0x6c]
push edx
call fcn.0040c540
add esp, 4
test eax, eax
je 0x40d449
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esi + 0x46654f]
mov dword [esp + 0x28], eax
jge 0x40d2c4
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [esp + 0x6c]
jmp 0x40c810
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x456d88
call fcn.0041ed40
mov edi, dword [esp + 0x70]
mov eax, edi
imul eax, eax, 0xf3
mov byte [esp + 0x68], 1
mov eax, dword [eax + 0x466499]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov esi, esp
push eax
call fcn.00420060
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov byte [esp + 0x6c], 0
call fcn.0041af00
push ebx
push edi
call fcn.00407230
push edi
call fcn.0040a7a0
add esp, 0x14
lea edi, [esp + 0x14]
call fcn.00401370
jmp 0x40d75b
mov esi, dword [esp + 0x6c]
imul esi, esi, 0xf3
mov eax, dword [esi + 0x4664aa]
push 0x456c00
push eax
call fcn.00433544
add esp, 8
cmp eax, ebx
setne al
test al, al
je 0x40d20b
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x456d9c
call fcn.0041ed40
mov byte [esp + 0x68], 2
mov eax, dword [esi + 0x466499]
push ecx
sub eax, 0x10
mov dword [esp + 0x34], esp
mov edi, esp
push eax
call fcn.00420060
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x6c], 0
call fcn.0041af00
push ebx
mov ebx, dword [esp + 0x78]
push ebx
call fcn.0040d780
add esp, 0x10
mov eax, ebx
mov edi, 0x3e8
call fcn.004071e0
cmp dword [esi + 0x46655f], 1
jne 0x40d20b
mov eax, ebx
mov edi, 0x3a98
call fcn.004071e0
lea edi, [esp + 0x14]
call fcn.00401370
jmp 0x40d75b
jmp fcn.00420000
mov ebp, dword [esp + 0x6c]
mov esi, ebp
imul esi, esi, 0xf3
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7c]
lea edx, [esp + 0x2c]
push edx
push 0x26
push 0x262
push edi
mov dword [esp + 0x3c], ebx
call eax
cmp eax, ebx
jge 0x40d2fe
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov eax, ebp
mov edi, 0xc8
call fcn.004071e0
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x60]
lea edx, [esp + 0x2c]
push edx
push edi
mov dword [esp + 0x34], ebx
call eax
cmp eax, ebx
jge 0x40d331
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov eax, ebp
mov edi, 0x5dc
call fcn.004071e0
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7c]
lea edx, [esp + 0x2c]
push edx
push 0x30
push 0x276
push edi
mov dword [esp + 0x3c], ebx
call eax
cmp eax, ebx
jge 0x40d36b
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov eax, ebp
mov edi, 0xc8
call fcn.004071e0
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x5c]
lea edx, [esp + 0x2c]
push edx
push edi
mov dword [esp + 0x34], ebx
call eax
cmp eax, ebx
jge 0x40d39e
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov eax, ebp
mov edi, 0x7d0
call fcn.004071e0
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
lea edx, [esp + 0x2c]
push edx
push 0x46
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40d3d3
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov eax, ebp
mov edi, 0x7d0
call fcn.004071e0
mov edi, dword [esi + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x50]
lea edx, [esp + 0x2c]
push edx
push 0x46
push edi
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40d408
push 0x4582d4
push edi
push eax
call fcn.0044a580
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x456dec
call fcn.0041ed40
mov byte [esp + 0x68], 8
mov esi, dword [esi + 0x466499]
push ecx
sub esi, 0x10
mov dword [esp + 0x34], esp
mov edi, esp
push esi
call fcn.00420060
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x6c], 0
call fcn.0041af00
add esp, 8
fld qword [0x458468]
sub esp, 8
fstp qword [esp]
push 0
push ecx
mov ebx, esp
mov dword [esp + 0x40], esp
push str.9d0b0e
call fcn.00401260
mov ebp, dword [esp + 0x7c]
imul ebp, ebp, 0xf3
mov edi, dword [ebp + 0x466491]
push 0x244
push 0x2c8
push 0x47
push 0x2a4
lea ecx, [esp + 0x4c]
call fcn.00401850
mov ebx, eax
lea edi, [esp + 0x14]
call fcn.004013c0
mov eax, dword [esp + 0x2c]
xor esi, esi
cmp eax, esi
je 0x40d4e1
mov edi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, esi
jne 0x40d4e1
cmp edi, esi
je 0x40d4e1
mov eax, dword [edi]
cmp eax, esi
je 0x40d4c8
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, esi
je 0x40d4d8
push eax
call fcn.00423ef9
add esp, 4
push edi
call fcn.00423ef9
add esp, 4
push ecx
mov ecx, dword [esp + 0x18]
cmp ecx, esi
mov eax, esp
mov dword [esp + 0x34], esp
mov dword [eax], ecx
je 0x40d4fc
add ecx, 8
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0x54]
push ecx
call fcn.00412cc0
mov edi, dword [eax]
mov edx, dword [eax + 4]
add esp, 8
cmp edi, esi
mov dword [esp + 0x3c], edx
jle 0x40d5f0
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call ebx
mov edx, dword [esp + 0x3c]
mov esi, dword [ebp + 0x466491]
mov eax, dword [esi]
mov eax, dword [eax + 0x7c]
lea ecx, [esp + 0x2c]
push ecx
push edx
push edi
push esi
mov dword [esp + 0x3c], 0
call eax
test eax, eax
jge 0x40d555
push 0x4582d4
push esi
push eax
call fcn.0044a580
push 0x64
call ebx
mov esi, dword [ebp + 0x466491]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x60]
lea edx, [esp + 0x2c]
push edx
push esi
mov dword [esp + 0x34], 0
call eax
test eax, eax
jge 0x40d584
push 0x4582d4
push esi
push eax
call fcn.0044a580
push 0x64
call ebx
cmp dword [ebp + 0x466506], 1
mov edx, dword [esp + 0x3c]
mov esi, dword [ebp + 0x466491]
jne 0x40d5a6
add edx, 0xa1
add edi, 0x23
jmp 0x40d5af
add edx, 0xd4
add edi, 0x4b
push edi
call fcn.00401640
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call edi
mov esi, dword [ebp + 0x466491]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x5c]
lea edx, [esp + 0x2c]
push edx
push esi
mov dword [esp + 0x34], 0
call eax
test eax, eax
jge 0x40d5ea
push 0x4582d4
push esi
push eax
call fcn.0044a580
push 0x64
call edi
xor esi, esi
mov edi, dword [ebp + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7c]
lea edx, [esp + 0x2c]
push edx
push 0x193
push 0x14e
push edi
mov dword [esp + 0x3c], esi
call eax
cmp eax, esi
jge 0x40d621
push 0x4582d4
push edi
push eax
call fcn.0044a580
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call ebx
mov edi, dword [ebp + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x60]
lea edx, [esp + 0x2c]
push edx
push edi
mov dword [esp + 0x34], esi
call eax
cmp eax, esi
jge 0x40d652
push 0x4582d4
push edi
push eax
call fcn.0044a580
push 0x64
call ebx
cmp dword [ebp + 0x466506], 1
mov edi, dword [ebp + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x7c]
lea edx, [esp + 0x2c]
mov dword [esp + 0x2c], esi
push edx
jne 0x40d67a
push 0x1e7
jmp 0x40d67f
push 0x1fa
push 0x177
push edi
call eax
cmp eax, esi
jge 0x40d697
push 0x4582d4
push edi
push eax
call fcn.0044a580
push 0x64
call ebx
mov edi, dword [ebp + 0x466491]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x5c]
lea edx, [esp + 0x2c]
push edx
push edi
mov dword [esp + 0x34], esi
call eax
cmp eax, esi
jge 0x40d6c2
push 0x4582d4
push edi
push eax
call fcn.0044a580
push 0x64
call ebx
mov ecx, dword [esp + 0x6c]
call fcn.0040c370
test eax, eax
je 0x40d71f
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x456df8
call fcn.0041ed40
mov byte [esp + 0x68], 9
mov ebp, dword [ebp + 0x466499]
push ecx
sub ebp, 0x10
mov dword [esp + 0x34], esp
mov edi, esp
push ebp
call fcn.00420060
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x6c], 0
call fcn.0041af00
mov ecx, dword [esp + 0x74]
push esi
push ecx
call fcn.0040d780
add esp, 0x10
mov edi, dword [esp + 0x14]
cmp edi, esi
je 0x40d75b
lea edx, [edi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x40d75b
mov eax, dword [edi]
cmp eax, esi
je 0x40d742
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
cmp eax, esi
je 0x40d752
push eax
call fcn.00423ef9
add esp, 4
push edi
call fcn.00423ef9
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret