Function at 0x4081c5
Capabilities:
Print debug messages

Disassembly:
push 0xd4
mov eax, 0x428674
call fcn.00413ec1
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc0], edi
call fcn.00408120
mov esi, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0xbc], esi
cmp dword [ebp + 0xc], eax
jg 0x40865c
lea eax, [esi + 0x18]
push eax
mov dword [ebp - 0xc4], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov al, byte [0x44284c]
cmp al, bl
je 0x40864c
mov dword [ebp - 0xd8], 0x44284c
mov byte [ebp - 0xd4], al
mov byte [0x44284c], bl
mov byte [ebp - 4], 1
xor eax, eax
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
mov byte [ebp - 4], 2
mov eax, dword [edi + 0x10]
add eax, eax
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406b77
push ebx
lea eax, [ebp - 0x9c]
push eax
mov ecx, esi
call fcn.00407eed
mov byte [ebp - 4], 3
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
mov byte [ebp - 4], 2
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x9c]
call fcn.004012a0
cmp byte [esi + 3], bl
je 0x408319
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0xe0]
call fcn.0040cd75
mov ecx, eax
call fcn.0040cef6
mov byte [ebp - 4], 4
push 0x433734
mov edx, eax
lea ecx, [ebp - 0x64]
call fcn.00404086
mov byte [ebp - 4], 5
push ebx
mov edx, eax
lea ecx, [ebp - 0x9c]
call fcn.00404b7d
mov byte [ebp - 4], 6
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
mov byte [ebp - 4], 5
push ebx
push edi
lea ecx, [ebp - 0x9c]
call fcn.004012a0
mov byte [ebp - 4], 4
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.00401250
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.00401250
mov al, byte [esi + 2]
mov esi, 0x437e64
cmp al, bl
je 0x408378
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
lea eax, [ebp - 0x64]
push 0x437e5c
push eax
call fcn.0040992a
add esp, 0xc
mov byte [ebp - 4], 7
push esi
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.004073a2
mov byte [ebp - 4], 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
mov byte [ebp - 4], 7
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.004012a0
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.004012a0
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 1], bl
je 0x408468
mov edx, dword [ebp - 0xc8]
push ebx
lea ecx, [ebp - 0x64]
call fcn.00404b7d
mov byte [ebp - 4], 9
push esi
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.004073a2
mov byte [ebp - 4], 0xa
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
mov byte [ebp - 4], 9
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.004012a0
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.004012a0
mov edx, dword [ebp - 0xd0]
lea ecx, [ebp - 0x64]
call fcn.00409493
mov byte [ebp - 4], 0xb
push esi
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.004073a2
mov byte [ebp - 4], 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
mov byte [ebp - 4], 0xb
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.004012a0
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.004012a0
mov edx, dword [ebp - 0xcc]
push ebx
lea ecx, [ebp - 0x64]
call fcn.00404b7d
mov byte [ebp - 4], 0xd
push 0x437e54
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.004073a2
mov byte [ebp - 4], 0xe
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
mov byte [ebp - 4], 0xd
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.004012a0
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.004012a0
push 0xffffffffffffffff
push ebx
push dword [ebp - 0xc0]
lea ecx, [ebp - 0x2c]
call fcn.00406bb0
push 0x437dbc
lea ecx, [ebp - 0x2c]
call fcn.00406cf4
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x408492
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, dword [ebp - 0xbc]
cmp byte [esi], bl
je 0x4084c6
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x4084af
lea eax, [ebp - 0x2c]
push eax
push 0x437e4c
call fcn.004162bb
add eax, 0x20
push eax
call fcn.0041622f
add esp, 0xc
lea eax, [ebp - 0x80]
push eax
mov ecx, esi
call fcn.0040752f
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x70], ebx
je 0x408622
mov esi, dword [esi + 0x64]
cmp esi, edi
jle 0x4085d4
mov edx, esi
lea ecx, [ebp - 0x64]
call fcn.00409493
mov byte [ebp - 4], 0x10
push eax
mov edx, 0x437e48
lea ecx, [ebp - 0x48]
call fcn.004074c1
mov byte [ebp - 4], 0x11
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x80]
call fcn.00406bb0
mov byte [ebp - 4], 0x10
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.004012a0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x64]
jmp 0x4085cd
mov eax, dword [ebp - 0xbc]
inc esi
mov edx, esi
lea ecx, [ebp - 0xb8]
mov dword [eax + 0x64], esi
call fcn.00409493
mov dword [ebp - 0xc0], eax
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0xbc]
lea eax, [ebp - 0x9c]
push eax
call fcn.0040752f
mov byte [ebp - 4], 0x13
push 0x437e48
mov edx, eax
lea ecx, [ebp - 0x64]
call fcn.004073a2
mov byte [ebp - 4], 0x14
push dword [ebp - 0xc0]
mov edx, eax
lea ecx, [ebp - 0x48]
call fcn.00407454
mov byte [ebp - 4], 0x15
push eax
lea ecx, [ebp - 0x80]
call fcn.00404975
mov byte [ebp - 4], 0x14
push ebx
push edi
lea ecx, [ebp - 0x48]
call fcn.004012a0
mov byte [ebp - 4], 0x13
push ebx
push edi
lea ecx, [ebp - 0x64]
call fcn.004012a0
mov byte [ebp - 4], 0x12
push ebx
push edi
lea ecx, [ebp - 0x9c]
call fcn.004012a0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xb8]
push ebx
push edi
call fcn.004012a0
lea ecx, [ebp - 0x80]
call fcn.00411072
cmp eax, 0x989680
jg 0x40852f
cmp dword [ebp - 0x6c], 8
mov eax, dword [ebp - 0x80]
jae 0x4085f3
lea eax, [ebp - 0x80]
push 0x437e44
push eax
call fcn.0041571a
mov esi, eax
pop ecx
pop ecx
cmp esi, ebx
je 0x408622
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x408612
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.0041618b
push esi
call fcn.00413fda
add esp, 0xc
mov byte [ebp - 4], 2
push ebx
push edi
lea ecx, [ebp - 0x80]
call fcn.004012a0
mov byte [ebp - 4], 1
push ebx
push edi
lea ecx, [ebp - 0x2c]
call fcn.004012a0
mov byte [ebp - 4], bl
mov al, byte [ebp - 0xd4]
mov byte [0x44284c], al
or dword [ebp - 4], 0xffffffff
push dword [ebp - 0xc4]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.00413f44
ret 0xc