Function at 0x4c45b0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push esi
mov dword [ebp - 0x18], 1
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0x1e
mov dword [ebp - 0x1c], 0
mov dword [0x600aa0], 0
mov dword [0x5fd8c0], 0
xor eax, eax
mov word [0x5fd8c4], ax
mov dword [0x5fd8c8], 0
xor ecx, ecx
mov word [0x5fd8cc], cx
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jnp 0x4c467e
movsx edx, word [0x600560]
cmp edx, 1
jne 0x4c467e
call fcn.004e0b70
mov dword [ebp - 0x1c], eax
cmp dword [0x5fd768], 0
jne 0x4c4660
mov eax, dword [ebp - 0x1c]
cmp eax, dword [0x5fd77c]
jge 0x4c4660
cmp dword [0x5fdb48], 0
je 0x4c4660
cmp dword [0x5fdb24], 0
jne 0x4c4660
call fcn.004e0b70
mov dword [ebp - 0x1c], eax
jmp 0x4c4630
call fcn.004a83e0
cmp dword [0x5fd8d4], 1
jne 0x4c4677
mov dword [ebp - 8], 0
jmp 0x4c467e
mov dword [ebp - 8], 1
cmp dword [0x658f10], 0x3e8
jl 0x4c469e
mov ecx, dword [0x658f10]
sub ecx, 0x3e8
mov dword [0x658f10], ecx
jmp 0x4c46a8
mov dword [0x658f10], 0
cmp dword [0x5fdbb4], 1
jne 0x4c46e1
mov dword [0x5fdbb4], 0
mov dword [0x5fdbac], 0
mov dword [0x5fdbb0], 0
push 0x5d9
push str.S_Play_It
call fcn.004b8dc0
add esp, 8
cmp dword [0x5fdbac], 0x270f
jne 0x4c4700
mov edx, dword [0x5fdbb0]
mov dword [ebp - 0xc], edx
mov dword [0x5fdbac], 0
mov eax, dword [0x5fd9fc]
mov dword [ebp - 0x10], eax
mov dword [0x5fdab4], 0
mov dword [ebp - 0x24], 0
cmp dword [0x5fd8d8], 1
je 0x4c472b
cmp dword [0x5fd8e8], 1
jne 0x4c4783
cmp dword [0x5fd9f0], 4
jne 0x4c4783
cmp dword [0x5fdbac], 0
je 0x4c4783
cmp dword [0x5fd1a8], 0
je 0x4c477e
mov ecx, dword [0x5fd1a8]
sub ecx, 0x12c
mov dword [0x5ff23c], ecx
mov edx, dword [0x5fd1a8]
push edx
mov eax, dword [0x5fd1b0]
push eax
mov ecx, dword [0x5fd1ac]
push ecx
call fcn.004b8a90
add esp, 0xc
mov dword [0x5fd1a8], 0
jmp 0x4c5702
cmp dword [0x5fd8d8], 1
jne 0x4c47a0
mov dword [0x5fdbac], 0
mov dword [0x5fdbb0], 0
push 6
push 3
push 0x663b20
call fcn.00433b80
add esp, 0xc
mov dword [0x5fd9b8], eax
push 6
push 0xa
push 0x663b20
call fcn.00433b80
add esp, 0xc
mov dword [0x5fd9c0], eax
mov edx, dword [0x5fd9c0]
sub edx, dword [0x5fd9b8]
mov dword [0x5fd9d0], edx
jne 0x4c47ea
mov dword [0x5fd9d0], 1
cmp dword [0x5f6630], 1
jne 0x4c4806
cmp dword [0x5f4a98], 1
jne 0x4c4806
mov dword [0x5fd9d0], 2
cmp dword [0x5fd934], 0
je 0x4c482c
cmp dword [0x5fdc14], 1
jne 0x4c4822
mov dword [0x5fd988], 0
push 1
call fcn.004c6f90
add esp, 4
mov al, byte [0x663b28]
mov byte [0x5fdaa4], al
movsx ecx, byte [0x5fdaa4]
cmp ecx, 0x24
jne 0x4c4855
mov byte [0x5fdaa4], 0x2d
mov dword [0x600a78], 1
jmp 0x4c487e
movsx edx, byte [0x5fd8cf]
cmp edx, 0x24
jne 0x4c4874
mov byte [0x5fd8cf], 0x2d
mov dword [0x600a78], 1
jmp 0x4c487e
mov dword [0x600a78], 0
mov dword [0x5fdaa0], 0
movsx eax, byte [0x5fdaa4]
cmp eax, 0x73
je 0x4c48b8
movsx ecx, byte [0x5fdaa4]
cmp ecx, 0x76
je 0x4c48b8
movsx edx, byte [0x5fdaa4]
cmp edx, 0x56
je 0x4c48b8
movsx eax, byte [0x5fdaa4]
cmp eax, 0x71
jne 0x4c48c2
mov dword [0x5fdaa0], 1
movsx ecx, byte [0x5fd8cf]
cmp ecx, 0x2d
jne 0x4c48f4
cmp dword [0x5fd988], 0
jne 0x4c48f4
cmp dword [0x5fd9d0], 1
jle 0x4c48f4
cmp dword [0x5fdc14], 0
jne 0x4c48f4
cmp dword [ebp - 8], 0
jne 0x4c48f4
call fcn.004a8450
cmp dword [0x5fd988], 1
jne 0x4c490a
cmp dword [0x5fdc2c], 0
je 0x4c4aec
cmp dword [0x5fdbac], 0xe
jle 0x4c4926
cmp dword [0x5fdbac], 0x5f
jge 0x4c4926
mov dword [0x5fdbac], 0
cmp dword [0x5fdbac], 0
jne 0x4c4942
cmp dword [0x658f10], 0
jne 0x4c4942
push 1
call fcn.004b8e70
add esp, 4
cmp dword [0x5fdbac], 0
jle 0x4c4ad1
cmp dword [0x5fdbac], 5
jge 0x4c4ad1
cmp dword [0x5fd9cc], 1
jle 0x4c4ad1
cmp dword [0x5fd9ec], 0
jne 0x4c4ad1
cmp dword [0x5fd97c], 1
jne 0x4c4ad1
mov edx, dword [0x5fd9cc]
sub edx, 1
mov dword [0x5fd9cc], edx
push 0
mov eax, dword [0x5fd9cc]
push eax
call fcn.004d0590
add esp, 8
mov dword [0x5fdb48], eax
push 2
mov ecx, dword [0x5fd9cc]
push ecx
call fcn.004d0590
add esp, 8
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [0x5fdc04], edx
push 7
mov edx, dword [0x5fd9cc]
push edx
call fcn.004d0590
add esp, 8
mov dword [0x5f5660], eax
push 4
mov eax, dword [0x5fd9cc]
push eax
call fcn.004d0590
add esp, 8
mov dword [0x5fdaf0], eax
push 5
mov ecx, dword [0x5fd9cc]
push ecx
call fcn.004d0590
add esp, 8
imul eax, eax, 0xa
mov dword [0x658f8c], eax
push 1
mov edx, dword [0x5fd9cc]
push edx
call fcn.004d0590
add esp, 8
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [0x5fd8a0], edx
mov edx, dword [0x5fd8ec]
cmp edx, dword [0x5fd8a0]
jne 0x4c4a88
push 3
push 3
mov eax, dword [0x5fdb48]
mov ecx, dword [eax*4 + 0x65bea0]
push ecx
call fcn.004a7d70
add esp, 0xc
push eax
call fcn.00535089
add esp, 4
mov dword [0x5fd8ec], eax
cmp dword [0x5fd8ec], 0x1f4
jl 0x4c4a7c
mov edx, dword [0x5fd8ec]
sub edx, 0x1f4
mov dword [0x5fd8ec], edx
mov dword [0x5fd984], 0
jmp 0x4c4ab3
push 1
mov eax, dword [0x5fd9cc]
sub eax, 1
push eax
call fcn.004d0590
add esp, 8
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [0x5fd8ec], edx
mov dword [0x5fd984], 1
call fcn.004c2bf0
call fcn.004c2ea0
push 2
call fcn.004bc3f0
add esp, 4
mov dword [0x5fdbbc], 0
cmp dword [0x5fdaa0], 1
jne 0x4c4aea
cmp dword [ebp - 0xc], 0
jne 0x4c4aea
push 1
call fcn.004e5de0
add esp, 4
jmp 0x4c4b1f
cmp dword [0x5fd988], 1
jne 0x4c4b1f
cmp dword [0x5fdc14], 1
jne 0x4c4b1f
cmp dword [0x5fdaa0], 1
jne 0x4c4b1f
mov edx, dword [0x5fd9b8]
cmp edx, dword [0x5fd9c0]
jne 0x4c4b1f
push 1
call fcn.004e5de0
add esp, 4
mov dword [0x5fdad8], 1
cmp dword [0x5fdbac], 0
jle 0x4c4b3b
cmp dword [0x5fdbac], 9
jl 0x4c4b50
cmp dword [0x5fd988], 1
je 0x4c4b50
cmp dword [0x5fdbac], 0x98
jle 0x4c4b79
push 0xa
push 4
call fcn.004bd160
add esp, 8
push 2
call fcn.004bc3f0
add esp, 4
cmp dword [ebp - 0xc], 0
je 0x4c4b74
mov eax, dword [ebp - 0xc]
mov dword [0x5fdbac], eax
jmp 0x4c5306
cmp dword [0x5fd9f0], 4
jne 0x4c4b8e
cmp dword [0x5fdbac], 0x3e7
je 0x4c4bae
cmp dword [0x5fdbac], 0x270f
je 0x4c4bae
mov dword [0x5fdbac], 0
mov dword [0x5fdbb0], 0
movsx ecx, byte [0x5fdaa4]
cmp ecx, 0x2d
jne 0x4c4bfd
cmp dword [0x5fd9d0], 1
jle 0x4c4bfd
cmp dword [ebp - 0xc], 0
jne 0x4c4bfd
cmp dword [ebp - 8], 0
jne 0x4c4bfd
cmp dword [0x658f10], 0
jne 0x4c4bfd
cmp dword [0x5fdb50], 2
je 0x4c4bfd
cmp dword [0x5fdb50], 5
jne 0x4c4bf3
cmp dword [0x5fd8e0], 1
jne 0x4c4bfd
push 0
call fcn.004a8370
add esp, 4
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jnp 0x4c4c4f
movsx edx, word [0x65bdf2]
add edx, 1
mov word [0x65bdf2], dx
mov eax, dword [0x5fd9c0]
sub eax, dword [0x5fd9b8]
add eax, dword [0x65bdf4]
mov dword [0x65bdf4], eax
movsx esi, word [0x65bdf8]
call fcn.004b3030
movsx ecx, ax
add esi, ecx
mov word [0x65bdf8], si
movsx edx, byte [0x5fdaa4]
cmp edx, 0x51
jne 0x4c4c6a
call fcn.004e2390
mov dword [0x5fdadc], 1
cmp dword [ebp - 0xc], 0
je 0x4c4c78
mov eax, dword [ebp - 0xc]
mov dword [0x5fdbac], eax
call fcn.00483eb0
fstp dword [0x5fd788]
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jnp 0x4c4ce6
call fcn.004e0b70
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [0x5fd77c]
jle 0x4c4ce6
mov edx, dword [ebp - 0x1c]
sub edx, dword [0x5fd77c]
cmp edx, 0x4b
jle 0x4c4cc5
cmp dword [0x5fd764], 0
jne 0x4c4cc5
jmp 0x4c5702
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5fd77c]
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fdiv qword [0x54d270]
fsubr dword [0x5fd788]
fstp dword [0x5fd788]
push 0x259
call fcn.004e1030
add esp, 4
cmp dword [0x5fdb48], 0
jne 0x4c4d01
jmp 0x4c5702
call fcn.00483eb0
fsub dword [0x5fd788]
fstp dword [ebp - 0x20]
mov dword [ebp - 0x24], 1
fld dword [ebp - 0x20]
fcomp qword [0x54b688]
fnstsw ax
test ah, 5
jp 0x4c4d33
call fcn.00483eb0
fstp dword [0x5fd788]
jmp 0x4c4ce6
fld dword [0x5fda98]
fcomp qword [0x54d290]
fnstsw ax
test ah, 0x44
jnp 0x4c4dd7
fld dword [0x5fda98]
fld dword [ebp - 0x20]
fcompp
fnstsw ax
test ah, 5
jp 0x4c4d65
mov dword [ebp - 0x24], 0
jmp 0x4c4dd7
cmp dword [0x5fda9c], 1
jne 0x4c4d78
push 1
call fcn.004e5de0
add esp, 4
cmp dword [0x5fdb50], 2
je 0x4c4dbf
movsx ecx, byte [0x5fd8cf]
cmp ecx, 0x2d
jne 0x4c4dbf
cmp dword [ebp - 0x10], 0
jne 0x4c4dbf
cmp dword [ebp - 0xc], 0
jne 0x4c4dbf
push 1
call fcn.004a8370
add esp, 4
cmp dword [0x5fdb08], 0x3c
jne 0x4c4dbf
cmp dword [0x5fd8c0], 1
jne 0x4c4dbf
mov dword [0x5fd8c0], 0
fld dword [0x54d278]
fstp dword [0x5fda98]
mov dword [ebp - 0x24], 0
jmp 0x4c4ff3
movsx edx, byte [0x5fdaa4]
cmp edx, 0x2d
je 0x4c4df3
movsx eax, byte [0x5fd8cf]
cmp eax, 0x2d
jne 0x4c4f03
cmp dword [0x5fdb50], 2
je 0x4c4f03
cmp dword [0x5fd770], 1
je 0x4c4e20
mov ecx, dword [0x5fd9b8]
cmp ecx, dword [0x5fd9c0]
jne 0x4c4e2c
cmp dword [0x5fdaa0], 0
jne 0x4c4e2c
mov dword [0x5fd8d4], 1
jmp 0x4c4e31
call fcn.004a83e0
cmp dword [0x5fd8d4], 1
jne 0x4c4efc
mov dword [0x5fdb88], 1
jmp 0x4c4e59
mov edx, dword [0x5fdb88]
add edx, 1
mov dword [0x5fdb88], edx
mov eax, dword [0x5fdb88]
cmp eax, dword [0x662c20]
jg 0x4c4efa
push 0x25a
call fcn.004e1030
add esp, 4
mov ecx, dword [0x5fdb88]
mov edx, dword [ecx*4 + 0x662c20]
mov eax, dword [edx*4 + 0x662ce0]
movsx ecx, byte [eax + 0x12]
sub ecx, 0x30
mov dword [ebp - 0x28], ecx
mov edx, dword [0x5fdb88]
cmp dword [edx*4 + 0x662c20], 0
je 0x4c4ef5
cmp dword [ebp - 0x28], 4
je 0x4c4ef5
cmp dword [ebp - 0x28], 1
je 0x4c4ee4
mov eax, dword [0x5fdb88]
mov ecx, dword [eax*4 + 0x665e40]
sub ecx, 1
mov edx, dword [0x5fdb88]
mov dword [edx*4 + 0x659a00], ecx
mov eax, dword [0x5fdb88]
mov ecx, dword [eax*4 + 0x662c20]
mov dword [0x5fdab0], ecx
call fcn.004df530
mov edx, dword [0x5fdb88]
mov dword [edx*4 + 0x662c20], 0
jmp 0x4c4e4a
jmp 0x4c4f03
mov dword [ebp - 0x24], 0
cmp dword [0x5fdaa0], 1
je 0x4c4f19
cmp dword [0x5fda9c], 1
jne 0x4c4ff3
call fcn.004e22a0
mov dword [0x605adc], eax
mov eax, dword [0x605adc]
mov dword [ebp - 0x14], eax
mov ecx, dword [0x5fd794]
cmp ecx, dword [ebp - 0x14]
jne 0x4c4f59
mov edx, dword [0x5fd790]
mov eax, dword [0x5fd790]
add eax, 1
mov dword [0x5fd790], eax
cmp edx, 0xa
jle 0x4c4f57
mov ecx, dword [0x5fd9c0]
mov dword [ebp - 0x14], ecx
jmp 0x4c4f6c
mov edx, dword [ebp - 0x14]
mov dword [0x5fd794], edx
mov dword [0x5fd790], 0
mov eax, dword [0x5fd9c0]
sub eax, 2
cmp dword [ebp - 0x14], eax
jbe 0x4c4f80
call fcn.004e21f0
jmp 0x4c4f99
cmp dword [0x5fd934], 1
jne 0x4c4f99
cmp dword [0x600a98], 1
jne 0x4c4f99
mov dword [ebp - 0x24], 0
cmp dword [0x600a98], 0
jne 0x4c4fec
fld dword [0x5fda98]
fcomp qword [0x54d290]
fnstsw ax
test ah, 0x44
jp 0x4c4fec
cmp dword [0x5fdc14], 1
jne 0x4c4fc3
call fcn.004e21f0
cmp dword [0x5fd934], 1
jne 0x4c4fea
mov ecx, dword [0x5fd9d4]
cmp ecx, dword [0x5fd9c0]
jge 0x4c4fea
cmp dword [0x5fdc14], 0
jne 0x4c4fea
mov dword [ebp - 0x24], 0
jmp 0x4c4ff3
mov dword [ebp - 0x24], 0
push 0x25b
call fcn.004e1030
add esp, 4
mov edx, dword [0x5fdadc]
sub edx, 1
imul edx, edx, 0xc
fld dword [ebp - 0x20]
fld dword [edx + 0x70e360]
fcompp
fnstsw ax
test ah, 1
je 0x4c502b
mov eax, dword [0x5fdad8]
cmp eax, dword [0x5fdadc]
jge 0x4c5032
mov dword [ebp - 0x24], 0
cmp dword [0x5fdb50], 2
jne 0x4c5074
call fcn.00483eb0
fild dword [0x5fd9d0]
fmul qword [0x54d198]
fdiv qword [0x54d270]
fadd dword [0x5fd788]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4c506a
mov dword [ebp - 0x24], 0
jmp 0x4c5074
mov dword [0x662c20], 0
cmp dword [ebp - 0x24], 1
jne 0x4c507f
jmp 0x4c5306
push 0x26d
call fcn.004e1030
add esp, 4
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jnp 0x4c50d3
cmp dword [0x5fd764], 0
jne 0x4c50d3
call fcn.004e0b70
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x5fd778]
sub ecx, dword [ebp - 4]
cmp dword [ebp - 0x1c], ecx
jle 0x4c50d3
cmp dword [0x662c20], 0
jne 0x4c50ce
jmp 0x4c5702
jmp 0x4c5306
cmp dword [0x5fdbac], 0
jne 0x4c50e5
cmp dword [0x658f10], 0
je 0x4c50f4
mov dword [0x5fdbb0], 0
jmp 0x4c5306
push 1
call fcn.0048b130
add esp, 4
cmp dword [0x5fd9f0], 4
jne 0x4c513f
mov dword [0x5fd7dc], 3
push 1
call fcn.004b8e70
add esp, 4
mov dword [0x5fd7dc], 0
cmp dword [0x5fdbac], 0
je 0x4c513f
mov edx, dword [0x5fdbac]
mov dword [0x5fdbb0], edx
jmp 0x4c5306
push 1
call fcn.004b8e70
add esp, 4
cmp dword [0x5fdb48], 0
je 0x4c515b
cmp dword [0x5fdb24], 1
jne 0x4c5160
jmp 0x4c5702
cmp dword [0x5fdbac], 0
jle 0x4c5181
cmp dword [0x5fdbac], 9
jge 0x4c5181
mov dword [0x5fdbb0], 0
jmp 0x4c5306
cmp dword [0x5fdbac], 0
jne 0x4c5193
cmp dword [0x658f10], 0
je 0x4c51b7
cmp dword [0x5fd9f0], 4
jne 0x4c51a8
mov eax, dword [0x5fdbac]
mov dword [0x5fdbb0], eax
jmp 0x4c51b2
mov dword [0x5fdbb0], 0
jmp 0x4c5306
push 0x25c
call fcn.004e1030
add esp, 4
mov dword [0x5fdb88], 1
jmp 0x4c51df
mov ecx, dword [0x5fdb88]
add ecx, 1
mov dword [0x5fdb88], ecx
mov edx, dword [0x5fdb88]
cmp edx, dword [0x662c20]
jg 0x4c5254
push 0x25d
call fcn.004e1030
add esp, 4
mov eax, dword [0x5fdb88]
cmp dword [eax*4 + 0x662c20], 0
je 0x4c524f
fld dword [ebp - 0x20]
mov ecx, dword [0x5fdb88]
fld dword [ecx*4 + 0x7145a0]
fcompp
fnstsw ax
test ah, 0x41
jp 0x4c524f
mov edx, dword [0x5fdb88]
mov eax, dword [edx*4 + 0x662c20]
mov dword [0x5fdab0], eax
call fcn.004df530
fld dword [ebp - 0x20]
fadd qword [0x54d288]
mov ecx, dword [0x5fdb88]
fstp dword [ecx*4 + 0x7145a0]
jmp 0x4c51d0
mov edx, dword [0x5fdad8]
imul edx, edx, 0xc
fld dword [ebp - 0x20]
fld dword [edx + 0x70e360]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4c5274
jmp 0x4c52fc
mov eax, dword [0x5fdad8]
cmp eax, dword [0x5fdadc]
jge 0x4c528d
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004df220
add esp, 4
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jnp 0x4c52d1
cmp dword [0x5fd764], 0
jne 0x4c52d1
call fcn.004e0b70
mov dword [ebp - 0x1c], eax
mov edx, dword [0x5fd778]
sub edx, dword [ebp - 4]
cmp dword [ebp - 0x1c], edx
jle 0x4c52d1
cmp dword [0x662c20], 0
jne 0x4c52cf
jmp 0x4c5702
jmp 0x4c5306
cmp dword [0x5fdbac], 0
jne 0x4c52e3
cmp dword [0x658f10], 0
je 0x4c52ef
mov dword [0x5fdbb0], 0
jmp 0x4c5306
push 0x25e
call fcn.004e1030
add esp, 4
cmp dword [ebp - 0x18], 1
je 0x4c4ce6
cmp dword [ebp - 0x24], 1
je 0x4c5398
cmp dword [0x5fdbac], 6
jl 0x4c5398
cmp dword [0x5fdbac], 8
jg 0x4c5398
movsx eax, byte [0x5fdaa4]
cmp eax, 0x2d
je 0x4c5398
cmp dword [0x5fd934], 0
je 0x4c5398
cmp dword [0x5fdbac], 8
jne 0x4c5356
mov dword [0x5fd9fc], 1
mov dword [0x5fd988], 0
jmp 0x4c5398
cmp dword [0x5fdbac], 6
je 0x4c5368
cmp dword [0x5fdbac], 7
jne 0x4c536f
jmp 0x4c4ce6
cmp dword [0x5fdbac], 8
jne 0x4c5384
mov dword [0x5fd9fc], 1
jmp 0x4c538e
mov dword [0x5fd9fc], 0
mov dword [0x5fd988], 0
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jp 0x4c5411
cmp dword [0x5fd770], 0
jne 0x4c5411
cmp dword [0x5fdb08], 0x3c
jne 0x4c5402
cmp dword [0x5fdb50], 2
je 0x4c5402
movsx ecx, byte [0x5fd8cf]
cmp ecx, 0x2d
jne 0x4c5402
cmp dword [ebp - 0x10], 0
jne 0x4c5402
cmp dword [ebp - 0xc], 0
jne 0x4c5402
lea edx, [ebp - 0x2c]
push edx
call fcn.004e0ae0
add esp, 4
movsx eax, word [0x600560]
cmp eax, 1
jne 0x4c5402
mov ecx, 1
mov word [0x600560], cx
call fcn.004a8420
call fcn.004e21f0
call fcn.004a8420
fld dword [0x5fd780]
fcomp qword [0x54b688]
fnstsw ax
test ah, 0x44
jnp 0x4c5449
cmp dword [0x5fd764], 0
jne 0x4c5449
cmp dword [0x662c20], 0
jne 0x4c543d
jmp 0x4c5702
mov edx, dword [0x5fdadc]
mov dword [0x5fdad8], edx
cmp dword [0x5fdbac], 2
je 0x4c546d
cmp dword [0x5fdbac], 3
je 0x4c546d
cmp dword [0x5fdbac], 4
je 0x4c546d
cmp dword [0x5fdbac], 6
jne 0x4c547a
cmp dword [0x5fd988], 1
jne 0x4c557d
mov eax, dword [0x5fdad8]
cmp eax, dword [0x5fdadc]
jge 0x4c5495
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004df220
add esp, 4
jmp 0x4c547a
mov dword [0x5fdb88], 1
jmp 0x4c54b0
mov edx, dword [0x5fdb88]
add edx, 1
mov dword [0x5fdb88], edx
mov eax, dword [0x5fdb88]
cmp eax, dword [0x662c20]
jg 0x4c557d
push 0x25f
call fcn.004e1030
add esp, 4
mov ecx, dword [0x5fdb88]
cmp dword [ecx*4 + 0x662c20], 0
je 0x4c5578
mov edx, dword [0x5fdb88]
mov eax, dword [edx*4 + 0x662c20]
mov ecx, dword [eax*4 + 0x662ce0]
movsx edx, byte [ecx + 0x12]
sub edx, 0x30
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 1
jne 0x4c5518
mov eax, dword [0x5fdb88]
mov dword [eax*4 + 0x662c20], 0
jmp 0x4c5568
mov ecx, dword [0x5fdb88]
mov edx, dword [ecx*4 + 0x662c20]
mov dword [0x5fdab0], edx
cmp dword [ebp - 0x28], 3
jne 0x4c554d
mov eax, dword [0x5fdb88]
mov ecx, dword [eax*4 + 0x665e40]
sub ecx, 1
mov edx, dword [0x5fdb88]
mov dword [edx*4 + 0x659a00], ecx
call fcn.004df530
cmp dword [ebp - 0x28], 3
jne 0x4c5568
mov eax, dword [0x5fdb88]
mov dword [eax*4 + 0x662c20], 0
mov ecx, dword [0x5fdb88]
cmp dword [ecx*4 + 0x662c20], 0
jne 0x4c5500
jmp 0x4c54a1
cmp dword [0x5fdab4], 1
jne 0x4c55b5
push 0
mov edx, dword [0x5fdac0]
push edx
mov eax, dword [0x5fdac4]
push eax
mov ecx, dword [0x5fdabc]
push ecx
mov edx, dword [0x5fdab8]
push edx
call fcn.004d1100
add esp, 0x14
mov dword [0x5fdab4], 0
cmp dword [0x5fd8a4], 1
jne 0x4c55c3
call fcn.004bbc90
mov byte [0x5fd8cf], 0x20
cmp dword [0x5fdc24], 0
je 0x4c5661
call fcn.00483eb0
fsubr dword [0x5fdc28]
fcomp qword [0x54d280]
fnstsw ax
test ah, 0x41
je 0x4c5607
call fcn.00483eb0
fsub dword [0x5fdc28]
fcomp qword [0x54d280]
fnstsw ax
test ah, 0x41
jne 0x4c5619
fld dword [0x5fdc28]
fsub qword [0x54d228]
fstp dword [0x5fdc28]
call fcn.00483eb0
fld dword [0x5fdc28]
fcompp
fnstsw ax
test ah, 5
jp 0x4c5661
cmp dword [0x5fd8e0], 0
jne 0x4c5661
mov eax, dword [0x5fdc24]
sub eax, 1
mov dword [0x5fdb48], eax
mov dword [0x5fdc04], 0
mov dword [0x5fdc24], 0
mov dword [0x5fdbac], 0
cmp dword [0x5fd1a8], 0
je 0x4c56a2
mov ecx, dword [0x5fd1a8]
sub ecx, 0x12c
mov dword [0x5ff23c], ecx
mov edx, dword [0x5fd1a8]
push edx
mov eax, dword [0x5fd1b0]
push eax
mov ecx, dword [0x5fd1ac]
push ecx
call fcn.004b8a90
add esp, 0xc
mov dword [0x5fd1a8], 0
cmp dword [0x5fd8c0], 0
jne 0x4c56f6
movsx edx, word [0x5fd8c4]
test edx, edx
je 0x4c56f6
movsx eax, word [0x65bdf2]
movsx ecx, word [0x5fd8c4]
add eax, ecx
mov word [0x65bdf2], ax
mov edx, dword [0x65bdf4]
add edx, dword [0x5fd8c8]
mov dword [0x65bdf4], edx
movsx eax, word [0x65bdf8]
movsx ecx, word [0x5fd8cc]
add eax, ecx
mov word [0x65bdf8], ax
jmp 0x4c5702
mov edx, dword [0x5fd8c0]
mov dword [0x5fd8c0], edx
pop esi
mov esp, ebp
pop ebp
ret