Function at 0x462760
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x589d90]
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x46277a
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x462790
mov dl, byte [eax + 2]
cmp dl, 2
je 0x46278e
cmp dl, 5
jne 0x462790
mov ecx, eax
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [esi], 3
test ecx, ecx
je 0x462b02
mov eax, dword [0x589d90]
cmp byte [eax + 0x486], bl
jne 0x462b02
movzx eax, byte [ecx + 3]
mov dword [esi], eax
movzx eax, byte [ecx + 2]
add eax, 0xfffffffe
cmp eax, 6
ja case.0x4627cd.3
jmp dword [eax*4 + 0x462c4c]
mov ecx, dword [edi + 0x29c04]
mov dword [ebp - 8], 2
test ecx, ecx
je 0x4627f7
call fcn.00442ac0
test eax, eax
mov ecx, 2
cmovne ebx, ecx
mov dword [ebp - 4], ebx
push 0x5571c8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test ebx, ebx
jne 0x462872
mov dword [esi], ebx
call fcn.0053289f
cdq
mov ecx, 0x64
idiv ecx
sub edx, 1
je 0x46283c
sub edx, 1
je 0x462832
sub edx, 1
jne case.0x4627cd.3
push 0x5571e8
jmp 0x462ae5
push 0x5571d8
jmp 0x462ae5
push 0x5571cc
jmp 0x462ae5
mov ecx, dword [edi + 0x29c00]
mov ebx, 1
mov dword [ebp - 8], ebx
test ecx, ecx
je 0x462a13
call fcn.00442ac0
test eax, eax
jle 0x462a13
mov dword [ebp - 4], 4
jmp 0x462877
mov ebx, 2
mov edx, dword [0x589d94]
test edx, edx
je 0x462c3d
cmp byte [edi + 0xb2a], 0
jne 0x4628a4
cmp byte [edi + 0xb2b], 0
jne 0x4628a4
cmp byte [edi + 0xb2c], 0
jne 0x4628a4
xor ecx, ecx
jmp 0x4628a9
mov ecx, 1
movzx eax, byte [edi + 0xb23]
push eax
push ecx
mov ecx, edx
call fcn.004200f0
test eax, eax
je 0x462c3d
mov ecx, dword [0x589d90]
cmp byte [ecx + 0x1b4], 0
jne 0x462c3d
push dword [esi]
push 0
call fcn.0041fe40
mov ecx, eax
mov dword [ebp + 0x14], ecx
test ecx, ecx
jne 0x4628f0
mov eax, 0x3e8
jmp 0x462983
mov eax, dword [ecx + 0x30]
mov dword [ebp + 0x10], eax
movsx eax, word [ecx + 6]
cmp eax, ebx
jle 0x46296a
mov edx, eax
xor ebx, ebx
sub edx, dword [ebp - 8]
xor ecx, ecx
cmp edx, eax
jge 0x46296a
sub eax, edx
cmp eax, 2
jl 0x462943
mov esi, dword [ebp + 0x14]
movsx ecx, word [esi + 6]
mov eax, dword [esi + 0x34]
sub ecx, edx
sub ecx, 2
shr ecx, 1
inc ecx
lea eax, [eax + edx*8]
add eax, 0xc
xor esi, esi
lea edx, [edx + ecx*2]
nop
sub ebx, dword [eax - 8]
lea eax, [eax + 0x10]
sub esi, dword [eax - 0x10]
sub ecx, 1
jne 0x462930
mov dword [ebp + 0xc], esi
mov ecx, esi
mov esi, dword [ebp + 0x14]
movsx eax, word [esi + 6]
mov esi, dword [ebp + 8]
cmp edx, eax
jge 0x462964
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov eax, dword [eax + 0x34]
sub esi, dword [eax + edx*8 + 4]
mov dword [ebp + 0x10], esi
mov esi, dword [ebp + 8]
lea eax, [ecx + ebx]
add dword [ebp + 0x10], eax
mov ecx, dword [0x589d90]
imul eax, dword [ebp + 0x10], 0x3e8
mov ecx, dword [ecx + 0x110]
xor ecx, 0x29
cdq
idiv ecx
mov ecx, dword [0x589d90]
mov ebx, dword [ebp - 4]
push eax
mov eax, dword [0x589d94]
push dword [eax + 0x16c]
push dword [eax + 0x168]
movzx eax, byte [eax + 0x1b2]
push ebx
push 2
push eax
push dword [ecx + 0x16c]
movzx eax, byte [ecx + 0x1b5]
push dword [ecx + 0x168]
push eax
push dword [esi]
call fcn.004225c0
mov ecx, dword [0x589d94]
mov dword [0x5c2c4c], eax
push dword [ecx + 0x16c]
movzx eax, byte [ecx + 0x1b3]
push dword [ecx + 0x168]
push eax
movzx eax, byte [ecx + 0x1b2]
mov ecx, edi
push eax
mov eax, dword [0x589d90]
push 1
movzx eax, byte [eax + 0x1b5]
push eax
push ebx
push 2
call fcn.0042f5c0
pop edi
mov dword [esi], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [esi], 0
call fcn.0053289f
cdq
mov ecx, 0x64
idiv ecx
sub edx, ebx
je 0x462a40
sub edx, ebx
je 0x462a40
sub edx, ebx
jne case.0x4627cd.3
push 0x55720c
jmp 0x462ae5
push 0x557200
jmp 0x462ae5
mov dword [esi], ebx
call fcn.0053289f
cdq
mov ecx, 0x64
idiv ecx
sub edx, 1
je 0x462a7a
sub edx, 1
je 0x462a73
sub edx, 1
jne case.0x4627cd.3
push 0x557248
jmp 0x462ae5
push 0x557234
jmp 0x462ae5
push 0x557220
jmp 0x462ae5
mov dword [esi], ebx
call fcn.0053289f
cdq
mov ecx, 0x64
idiv ecx
sub edx, 1
je 0x462aad
sub edx, 1
je 0x462aa6
sub edx, 1
jne case.0x4627cd.3
push 0x557284
jmp 0x462ae5
push 0x557270
jmp 0x462ae5
push 0x557264
jmp 0x462ae5
mov dword [esi], ebx
call fcn.0053289f
cdq
mov ecx, 0x64
idiv ecx
sub edx, 1
je 0x462ae0
sub edx, 1
je 0x462ad9
sub edx, 1
jne case.0x4627cd.3
push 0x5572c4
jmp 0x462ae5
push 0x5572b0
jmp 0x462ae5
push 0x55729c
call fcn.00404580
mov ecx, dword [0x589d90]
add esp, 4
push eax
call fcn.00423a70
cmp dword [esi], 0
je 0x462c43
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
push ebx
push dword [ebp + 0x10]
movzx eax, byte [eax]
push eax
push dword [0x695300]
call fcn.00467df0
add esp, 0x10
test eax, eax
je 0x462c3d
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebx]
mov edx, dword [eax]
mov eax, dword [0x695300]
lea ecx, [edx + edx*4]
mov eax, dword [eax]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + ecx*4 + 8]
and eax, 0x10000080
cmp eax, 0x80
je 0x462c3d
mov ecx, dword [0x695300]
push ebx
push edx
call fcn.00448c40
test eax, eax
je 0x462c43
mov ebx, dword [eax*4 + 0x589990]
mov ecx, ebx
call fcn.004204c0
test eax, eax
je 0x462c05
mov dword [esi], 0
call fcn.0053289f
cdq
mov ecx, 0x64
idiv ecx
sub edx, 1
je 0x462be3
sub edx, 1
je 0x462bc1
sub edx, 1
jne 0x462c43
push 0x5572f0
call fcn.00404580
mov ecx, dword [0x589d90]
add esp, 4
push eax
call fcn.00423a70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x5572e8
call fcn.00404580
mov ecx, dword [0x589d90]
add esp, 4
push eax
call fcn.00423a70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x5572dc
call fcn.00404580
mov ecx, dword [0x589d90]
add esp, 4
push eax
call fcn.00423a70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [edi + 0xb2a], 0
jne 0x462c24
cmp byte [edi + 0xb2b], 0
jne 0x462c24
cmp byte [edi + 0xb2c], 0
jne 0x462c24
xor ecx, ecx
jmp 0x462c29
mov ecx, 1
movzx eax, byte [edi + 0xb23]
push eax
push ecx
mov ecx, ebx
call fcn.004200f0
test eax, eax
jne 0x462c43
mov dword [esi], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10