Function at 0x40279c
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov byte [ebp - 1], 0x26
movzx eax, byte [ebp - 1]
add eax, 0x2d8
mov dword [ebp - 0x10], eax
mov al, byte [ebp - 0x10]
imul eax, eax, 0x2b7
mov cl, byte [ebp - 1]
xor eax, ecx
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0xb4
jne 0x4027d1
mov eax, 0x40332f
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
movzx eax, byte [ebp - 1]
imul eax, eax, 0xf9
push 0x41
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 0x10], eax
cmp byte [ebp - 1], 0xb4
jne 0x4028a7
cmp word [ebp - 0x10], 0xb
jae 0x402875
mov al, byte [ebp - 1]
xor eax, 0x3e7
mov byte [ebp - 1], al
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + eax - 0x329]
mov dword [ebp - 0x10], eax
and dword [ebp - 0x14], 0
movzx eax, word [ebp - 0x10]
mov edi, 0xffffff67
mov esi, 0xc1
or eax, edi
add eax, esi
je 0x402a35
mov dword [ebp - 8], 0x30
mov eax, dword [ebp - 8]
or al, 2
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
imul eax, ecx
or ax, 0x1a2
mov dword [ebp - 8], eax
movzx eax, word [ebp - 8]
movzx ecx, word [ebp - 8]
xor edx, edx
div ecx
xor eax, 2
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x5b
jne 0x4028b9
mov eax, dword [ebp - 0xc]
add eax, 0x221
jmp 0x402960
cmp word [ebp - 0x10], 0x2b1
jne 0x402889
add dword [ebp - 0x18], 0xeac
jmp 0x402804
cmp word [ebp - 0x10], 0x25
jne 0x402804
movzx eax, byte [ebp - 1]
push 0x51
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 0x10], edx
jmp 0x402804
cmp byte [ebp - 1], 0x4c
jae 0x402804
mov al, byte [ebp - 1]
jmp 0x402a47
cmp dword [ebp - 0xc], 0x21
jbe 0x4028d2
movzx eax, word [ebp - 8]
mov ecx, dword [ebp - 0xc]
lea eax, [eax + ecx + 0x181]
jmp 0x4029a9
cmp dword [ebp - 0xc], 3
jne 0x4029ff
cmp dword [ebp - 0xc], 0x1f
jbe 0x4028fc
movzx ecx, word [ebp - 8]
mov eax, 0x1fd
xor edx, edx
div ecx
mov al, byte [ebp - 8]
and edx, eax
mov byte [ebp - 2], dl
jmp 0x402a21
cmp dword [ebp - 0xc], 0x63
jne 0x40291c
movzx ecx, word [ebp - 8]
mov eax, 0x225
xor edx, edx
div ecx
imul eax, eax, 0x10d
mov ecx, dword [ebp - 0xc]
and eax, ecx
jmp 0x402960
cmp dword [ebp - 0xc], 0x3d
jne 0x402938
mov cl, byte [ebp - 8]
mov eax, 0x1e2
xor edx, edx
and cx, 0xdc
div dword [ebp - 0xc]
xor ecx, eax
jmp 0x402996
cmp dword [ebp - 0xc], 0x31
ja 0x402a4c
cmp dword [ebp - 0xc], 3
jne 0x402a21
cmp word [ebp - 8], 0x28
ja 0x402968
movzx ecx, word [ebp - 8]
mov eax, 0x193
xor edx, edx
div ecx
mov byte [ebp - 2], al
jmp 0x402a21
mov eax, 0x9e6
cmp word [ebp - 8], ax
jne 0x402a21
cmp word [ebp - 8], 0xf
jae 0x40299e
mov ecx, dword [ebp - 8]
add ecx, 0x348
movzx ebx, word [ebp - 8]
mov eax, 0x1c0
xor edx, edx
div ebx
or ecx, edx
mov dword [ebp - 8], ecx
jmp 0x402a21
cmp word [ebp - 8], 0x53
jne 0x4029ae
movzx eax, word [ebp - 8]
mov dword [ebp - 0xc], eax
jmp 0x402a21
cmp word [ebp - 8], 0x37
je 0x402a51
cmp word [ebp - 8], 0xb
jae 0x4029d1
movzx eax, word [ebp - 8]
or ax, 0x3ee
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x402a21
cmp word [ebp - 8], ax
jne 0x402a21
cmp word [ebp - 8], 0x55
jae 0x4029e9
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x402a21
cmp word [ebp - 8], ax
jne 0x402a21
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax]
cmp al, byte [ebp + 8]
je 0x402a56
jmp 0x402a21
cmp dword [ebp - 0xc], 0x46
jne 0x402a21
push dword [ebp - 0xc]
movzx ecx, word [ebp - 8]
mov eax, 0x332
xor edx, edx
div ecx
mov ecx, dword [ebp - 0xc]
sub eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
inc dword [ebp - 0x14]
movzx eax, word [ebp - 0x10]
or eax, edi
add eax, esi
cmp dword [ebp - 0x14], eax
jb 0x402831
mov al, byte [ebp - 1]
sub eax, 0x30b
mov cl, byte [ebp - 0x10]
xor eax, ecx
mov byte [ebp + 0xb], al
xor al, al
pop edi
pop esi
pop ebx
leave
ret
mov al, byte [ebp - 0xc]
jmp 0x402a47
mov al, byte [ebp - 8]
jmp 0x402a47
mov al, byte [ebp - 0x14]
jmp 0x402a47