Function at 0x654314
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov esi, dword [0x882868]
push edi
mov edi, ecx
lea eax, [ebp - 0x30]
push eax
mov ecx, esi
mov dword [ebp - 8], edi
call fcn.0044dc21
xor ecx, ecx
xor ebx, ebx
cmp dword [eax + 4], ebx
sete cl
cmp dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ecx
je 0x65434e
push ebx
lea ecx, [ebp - 0x30]
call fcn.00455bb5
cmp dword [ebp - 0x18], ebx
je 0x654389
xor ecx, ecx
add edi, 0x55c
mov eax, edi
cmp byte [eax], 0
jne 0x654373
inc ecx
add eax, 0xc
cmp ecx, 0x59
jl 0x65435d
push 1
pop eax
jmp 0x6545d6
push 0x42c
push ebx
push edi
call fcn.007a8860
add esp, 0xc
xor eax, eax
jmp 0x6545d6
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.0044dc21
cmp dword [ebp - 0x24], ebx
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
je 0x6543ab
push ebx
lea ecx, [ebp - 0x28]
call fcn.00455bb5
mov dword [ebp - 0x24], ebx
mov eax, dword [0x883308]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
cmp ebx, 0x36
jne 0x6543c4
push 0x2a
pop eax
jmp 0x6543c6
mov eax, ebx
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + eax*4]
lea esi, [eax + ecx + 4]
mov al, byte [esi]
xor ecx, ecx
cmp al, 1
mov dword [ebp - 0x10], ecx
je 0x654570
jbe 0x654551
cmp al, 3
jbe 0x6543f9
cmp al, 6
jbe 0x6545a6
cmp al, 7
jne 0x654551
mov eax, dword [esi + 1]
cdq
mov ecx, 0xf4240
idiv ecx
cmp eax, 2
mov dword [ebp - 0x14], eax
jne 0x654453
mov eax, dword [esi + 1]
cdq
mov ecx, 0x2710
idiv ecx
cmp eax, 0xc8
je 0x654485
cmp eax, 0xc9
je 0x654485
cmp eax, 0xca
je 0x654485
cmp eax, 0xcd
je 0x654485
cmp eax, 0xdd
je 0x654485
cmp eax, 0xd4
je 0x654485
cmp eax, 0xe2
je 0x654485
cmp eax, 0xe3
jne 0x65452f
cmp dword [ebp - 0x14], 5
jne 0x654485
push dword [esi + 1]
call fcn.0047e105
cmp eax, 8
pop ecx
jl 0x65446c
cmp eax, 0xb
jle 0x65446e
xor eax, eax
cmp eax, 9
je 0x654485
push dword [esi + 1]
call fcn.0047e3db
cmp eax, 6
pop ecx
jne 0x65452f
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + eax*4 + 0x297]
mov eax, dword [eax]
test eax, eax
je 0x65449b
mov eax, dword [eax - 4]
push 1
dec eax
pop ecx
cmp eax, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], ecx
jl 0x654506
push dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
call fcn.004513ec
cmp dword [ebp - 0x2c], 0
mov edi, dword [eax + 4]
je 0x6544d2
push 0
lea ecx, [ebp - 0x30]
call fcn.00448a70
and dword [ebp - 0x2c], 0
test edi, edi
je 0x6544f8
lea ecx, [edi + 0xc]
call fcn.004556a5
cmp eax, dword [esi + 1]
jne 0x6544f8
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test eax, eax
jne 0x6544f8
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
add dword [ebp - 0x10], eax
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x20]
jle 0x6544a9
mov edi, dword [ebp - 8]
push 5
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*4 + 0x55c]
push esi
push eax
call fcn.007a8df0
add esp, 0xc
test eax, eax
jne 0x65452f
mov ecx, dword [ebp - 0x10]
lea eax, [ebx + ebx*2 + 0x159]
cmp dword [edi + eax*4], ecx
je 0x654533
and dword [ebp - 4], 0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
lea eax, [ebx + ebx*2]
lea edi, [edi + eax*4 + 0x55c]
movsd dword es:[edi], dword [esi]
lea eax, [ebx + ebx*2 + 0x159]
movsb byte es:[edi], byte [esi]
mov dword [edx + eax*4], ecx
jmp 0x6545c6
lea eax, [ebx + ebx*2]
cmp byte [edi + eax*4 + 0x55c], 0
lea eax, [edi + eax*4 + 0x55c]
je 0x654568
mov dword [ebp - 4], ecx
and byte [eax], 0
and byte [esi], 0
jmp 0x6545c9
push ecx
push dword [esi + 1]
mov ecx, dword [0x87e3dc]
push dword [ebp - 0x18]
call fcn.005f9291
test eax, eax
jle 0x65458c
cmp dword [esi + 1], 0
jne 0x6545a6
lea eax, [ebx + ebx*2]
cmp byte [edi + eax*4 + 0x55c], 0
lea eax, [edi + eax*4 + 0x55c]
je 0x654568
and dword [ebp - 4], 0
jmp 0x654568
lea eax, [ebx + ebx*2]
push 5
lea edi, [edi + eax*4 + 0x55c]
push esi
push edi
call fcn.007a8df0
add esp, 0xc
test eax, eax
je 0x6545c4
and dword [ebp - 4], 0
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 8]
inc ebx
cmp ebx, 0x59
jl 0x6543ba
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret