Function at 0x410770
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
cmp dword [0xbdae0c], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
je case.default.0x410adf
mov edi, dword [esi*4 + 0x20a514c]
test esi, esi
js case.default.0x410adf
cmp esi, 0x1194
jge case.default.0x410adf
cmp dword [edi + 4], 3
jne case.default.0x410adf
movzx eax, word [edi + 0x78]
cmp eax, 1
je 0x4107c3
cmp eax, 6
jne case.default.0x410adf
cmp byte [edi + 0xa], 0
jg case.default.0x410adf
cmp byte [edi + 0x9c0], 0
jne case.default.0x410adf
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], 0x9a04c1
mov cl, byte [eax + 3]
dec cl
mov byte [eax + 3], cl
cmp cl, 8
jae 0x4108ec
mov eax, dword [edi + 0x644]
mov ebx, dword [eax*4 + 0xbdae14]
test ebx, ebx
je 0x4108a5
movzx eax, word [edi + 0x116a]
cmp eax, ebx
jl 0x4108a5
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x2c9
push eax
lea eax, [esp + 0x20]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x24]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x41084f
cmp dword [eax + 0x10], 0x2c9
jle 0x410851
mov eax, ecx
cmp eax, ecx
jne 0x41088a
push 0x2c9
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
push ebx
push eax
push 0
push 0
push esi
call fcn.004ead50
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push ebx
add eax, 0x18
push eax
push 0
push 0
push esi
call fcn.004ead50
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
movzx ebx, cl
imul edx, ebx, 0x69c
lea eax, [edx + 0x57b094]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov al, byte [eax + 4]
cmp al, 0xcc
jae 0x4108ec
movzx eax, al
mov esi, 0x1a12
imul ecx, eax, 0x10c
add ecx, dword [edi + 0x390]
movzx eax, word [ecx + 4]
cmp ax, si
mov esi, dword [ebp + 0xc]
je 0x4108f6
mov ecx, 0x1a2f
cmp ax, cx
je 0x41090b
mov byte [esp + 0x13], 1
jmp 0x410b93
movsx ecx, word [ecx + 6]
lea eax, [ebx + 1]
cmp ecx, eax
je 0x41090b
mov byte [esp + 0x13], 1
jmp 0x410b93
cmp ebx, 8
jae 0x410b8e
cmp dword [edx + 0x57b0ac], 0
je 0x410b8e
mov ecx, dword [edx + 0x57b09c]
test ecx, ecx
js 0x410b8e
cmp ecx, 0x6e
jge 0x410b8e
mov eax, dword [0xa0cdb0]
test eax, eax
je 0x410b8e
cmp dword [eax + 4], 0
je 0x410b8e
cmp word [eax + ecx*2 + 0x1e], 0xfffd
jne 0x410b8e
push edi
call fcn.0047c410
cmp eax, ebx
jle 0x41096f
mov byte [esp + 0x13], 3
jmp 0x410b93
jge 0x41097b
mov byte [esp + 0x13], 4
jmp 0x410b93
mov ebx, dword [esp + 0x14]
xor edx, edx
add ebx, 0x48
mov eax, ebx
lea esi, [edx + 0x32]
nop dword [eax]
mov ecx, dword [eax]
test ecx, ecx
js 0x41099f
cmp ecx, 0x1194
jge 0x41099f
inc edx
add eax, 0x10
sub esi, 1
jne 0x410990
mov esi, dword [ebp + 0xc]
cmp edx, dword [0xbdae10]
jl 0x4109bc
mov byte [esp + 0x13], 5
jmp 0x410b93
cmp dword [0xbda8ec], 0
jne 0x4109e1
cmp byte [edi + 0x13d], 4
jl 0x4109e1
cmp dword [0xbdcc70], 0
jne 0x4109e1
mov byte [esp + 0x13], 7
jmp 0x410b93
xor ecx, ecx
mov eax, ebx
cmp dword [eax], esi
je 0x4109f4
inc ecx
add eax, 0x10
cmp ecx, 0x32
jl 0x4109e5
jmp 0x4109f8
test eax, eax
jne 0x4109b2
xor edx, edx
nop word [eax + eax]
mov eax, dword [ebx]
test eax, eax
js 0x410a20
cmp eax, 0x1194
jge 0x410a20
inc edx
add ebx, 0x10
cmp edx, 0x32
jl 0x410a00
mov byte [esp + 0x13], 5
jmp 0x410b93
mov ebx, dword [esp + 0x14]
lea eax, [edx + 5]
mov ecx, edx
add eax, eax
add ecx, ecx
mov dword [ebx + eax*8], 0
mov dword [ebx + ecx*8 + 0x48], esi
mov dword [ebx + ecx*8 + 0x4c], 0
mov dword [ebx + ecx*8 + 0x54], 0
mov ecx, dword [esi*4 + 0x20a514c]
inc word [ecx + 0x116a]
mov ecx, dword [ecx]
call fcn.004729b0
mov ebx, dword [ebp + 8]
push ecx
movzx eax, byte [ebx + 4]
push eax
push edi
call fcn.0049f680
movzx edx, byte [ebx + 4]
mov esi, 0x1a12
mov eax, dword [edi + 0x390]
imul ecx, edx, 0x10c
cmp word [ecx + eax + 4], si
mov esi, dword [ebp + 0xc]
jne 0x410abb
push edx
push dword [edi]
call fcn.0049de90
mov al, byte [ebx + 4]
lea edx, [esp + 0x14]
mov ecx, dword [edi]
push 5
mov word [esp + 0x18], 0x5c1
mov byte [esp + 0x1a], 0x28
mov byte [esp + 0x1b], al
mov byte [esp + 0x1c], 1
call fcn.00526480
add esp, 4
push 4
lea eax, [esp + 0x14]
push eax
push esi
call fcn.005192f0
and dword [edi + 0x384], 0xffff0000
movzx eax, byte [ebx + 3]
cmp eax, 7
ja case.default.0x410adf
jmp dword [eax*4 + 0x410bac]
mov edx, 0x42
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x43
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x44
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x45
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x46
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x47
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x50
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, 0x10f
mov ecx, esi
call fcn.00522900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov byte [esp + 0x13], 2
push 4
lea eax, [esp + 0x14]
push eax
push esi
call fcn.005192f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8