Function at 0x73be50
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov ecx, dword [ebp + 8]
mov eax, 9
mov byte [esp + 0x7b], 0x37
mov byte [esp + 0x47], 0x79
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0xffffffff
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
cmp dword [ecx + 8], 0
mov byte [esp + 0x83], cl
mov byte [esp + 0x3f], cl
mov byte [esp + 0x5f], cl
mov byte [esp + 0x82], cl
mov edi, 1
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x6c], ecx
jne 0x73cdb4
mov esi, ecx
mov dword [esp + 0x6c], ecx
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jmp 0x73c408
mov bh, dl
add bh, 0x48
mov bl, dl
add bl, 0x4b
mov byte [esp + 0x83], bl
xor bl, 0x29
mov byte [esp + 0x82], bl
mov esi, eax
imul esi, esi
and esi, 3
cmp esi, 2
adc eax, 0
mov esi, eax
and esi, 1
xor esi, eax
cmp esi, 0xffffffff
setne bl
movzx esi, bl
cmp eax, esi
jb 0x73bf80
mov dword [esp + 0x7c], 0
mov byte [esp + 0x47], bh
mov dword [esp + 0x74], 0
mov esi, edi
cmp ecx, 6
je case.0x73c8e2.4
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov edi, dword [esp + 0x7c]
jne 0x73c024
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x20], eax
mov edx, esi
jmp 0x73cf35
mov byte [esp + 0x47], 0x79
mov byte [esp + 0x83], 4
mov byte [esp + 0x82], 0x2d
mov eax, dword [ebp + 8]
lea eax, [eax + 4]
mov dword [esp + 0x50], eax
xor edi, edi
mov dword [esp + 0x74], 0
mov eax, 0x15
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x74]
lea edx, [edx + edx*2]
lea esi, [ecx + edx*8]
mov dword [esp + 0x58], esi
mov esi, dword [ecx + edx*8]
cmp esi, 0x17
jle 0x73c09c
cmp esi, 0x3c
jg 0x73c117
cmp esi, 0x18
je 0x73c181
cmp esi, 0x29
jne 0x73c22a
cmp dword [ecx + edx*8 + 0x10], 4
je 0x73c2c4
xor eax, eax
test al, al
jne 0x73c2c4
mov ecx, 0x12
mov dword [esp + 0xb0], 0x30000003
mov dword [esp + 0x7c], edi
mov esi, edi
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
jmp 0x73c3fa
mov ebx, 4
test esi, esi
je 0x73c1e8
mov ecx, 0xe
cmp esi, 3
mov edx, dword [esp + 0x40]
je 0x73c1ff
cmp esi, 4
jne 0x73c22a
mov ebx, 0x14
lea eax, [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00789690
mov dword [esp + 0xb0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, edi
mov ecx, edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
mov esi, edx
mov dword [esp + 0x6c], edx
je 0x73c752
jmp 0x73c371
mov ecx, 0xb
cmp esi, 0x3d
je 0x73c213
cmp esi, 0x47
jne 0x73c22a
mov ebx, 0xb
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.007896f0
mov dword [esp + 0xb0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, edi
mov ecx, edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
mov esi, edx
mov dword [esp + 0x6c], edx
je 0x73c752
jmp 0x73c5c9
mov ebx, 8
mov eax, dword [ecx + edx*8 + 4]
lea ecx, [esp + 0x84]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00789cf0
mov dword [esp + 0xb0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
mov ecx, edx
jne 0x73cfc8
jmp 0x73c2a2
mov dword [esp + 0x7c], edi
mov esi, edi
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
jmp 0x73cb3b
mov dword [esp + 0x7c], edi
mov esi, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x60], edi
jmp 0x73c255
mov dword [esp + 0x7c], edi
mov esi, edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x4c]
jmp 0x73c422
mov dword [esp + 0x7c], edi
mov ecx, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x60], edi
cmp eax, 0xb
jne 0x73c2bb
mov esi, ecx
mov ecx, 9
mov dl, 0x7a
mov dword [esp + 0xb0], 0x700002bb
mov dword [esp + 0x74], edi
cmp ecx, 9
jne 0x73c274
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x73c274
mov dword [esp + 0x40], edx
mov edx, esi
jmp 0x73cfc8
mov dword [esp + 0x40], edx
mov ecx, 0x16
movzx eax, byte [esp + 0x82]
cmp eax, 0x30
je 0x73c314
mov ebx, 0x11
cmp eax, 0x5d
jne 0x73c31d
mov edx, dword [esp + 0x6c]
mov ecx, esi
mov esi, edx
cmp ebx, 8
jne 0x73c2d9
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jae 0x73c2d9
mov edx, esi
jmp 0x73c752
mov edx, dword [esp + 0x6c]
jmp 0x73c752
mov eax, dword [ecx + edx*8 + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x60], eax
mov edx, edi
jmp 0x73c752
mov byte [esp + 0x82], 0x5d
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.007895f0
mov dword [esp + 0xb0], eax
test eax, eax
mov edx, esi
mov ecx, edx
mov dword [esp + 0x6c], edx
je 0x73c752
jmp 0x73cfc8
mov ebx, dword [esp + 0x6c]
jmp 0x73cc0b
mov edi, 0xd
mov byte [esp + 0x82], 0x2d
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.007895f0
mov dword [esp + 0xb0], eax
test eax, eax
je 0x73c368
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x6c]
mov edx, eax
mov esi, eax
jne 0x73cfc8
jmp 0x73c6bd
mov esi, dword [esp + 0x6c]
jmp 0x73c6bd
xor ecx, ecx
cmp ebx, 6
je 0x73c38c
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
mov ebx, dword [esp + 0x40]
jne 0x73c5e4
jmp 0x73c3ce
mov ebx, dword [esp + 0x40]
jmp 0x73c3ce
mov ebx, 0xb0
lea eax, [ebx - 0xa4]
xor ebx, eax
add bl, 0x94
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov dword [esp + 0xb0], 0x700002bb
mov edx, edi
test ecx, ecx
jne 0x73c3eb
mov edi, edx
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
jne 0x73c3a0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x7c], edi
jmp 0x73c3f3
mov dword [esp + 0x40], ebx
mov dword [esp + 0x7c], edx
mov edx, esi
jmp 0x73cf48
cmp ecx, 0xd
je 0x73c419
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ebx, dword [esp + 0x7c]
mov edx, esi
jne 0x73cfc8
jmp 0x73ce95
mov ebx, dword [esp + 0x7c]
jmp 0x73ce95
cmp ecx, 0xb
jne 0x73c469
mov dword [esp + 0x74], eax
mov dword [esp + 0x4c], edx
mov ebx, 2
lea eax, [esp + 0x88]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00789740
mov dword [esp + 0xb0], eax
test eax, eax
mov edx, edi
mov dword [esp + 0x6c], edx
mov ecx, edx
mov esi, edx
jne 0x73cfc8
jmp 0x73ccf8
mov dword [esp + 0x64], esi
mov dword [esp + 0x74], eax
mov eax, 0xd
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
mov dword [edx + 0x1c], ecx
mov dword [esp + 0x6c], edi
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x70]
jmp 0x73ceee
lea eax, [esp + 0xac]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00789840
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x73c4d8
mov ecx, 0x10
mov edx, eax
not edx
and edx, 1
add edx, eax
mov eax, dword [esp + 0x6c]
mov edx, eax
mov esi, eax
jne 0x73c6d8
jmp 0x73cfc8
mov edx, dword [esp + 0x6c]
jmp 0x73cfc8
mov dword [esp + 0x64], edx
mov dl, 0x30
mov al, 0x5e
mov ecx, 3
mov edi, dword [esp + 0x60]
sub ecx, edi
xor ecx, edi
setne cl
movzx esi, cl
add esi, edi
mov ecx, dword [ebp + 8]
cmp esi, dword [ecx + 8]
jae 0x73c7af
mov dword [esp + 0x74], esi
mov byte [esp + 0x83], 0x30
jmp 0x73c7a4
xor eax, eax
test al, al
jne 0x73c99f
mov al, 0x59
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x73ceaf
mov ecx, 0xd
mov edi, esi
mov esi, edx
or esi, 2
xor edx, 2
add edx, esi
mov esi, edi
mov edx, dword [esp + 0x68]
mov dword [esp + 0x70], edx
jne 0x73c3fa
jmp 0x73ceaf
mov dword [esp + 0x70], edx
mov eax, 8
mov edx, dword [esp + 0xac]
test edx, edx
jne 0x73c584
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0x54], edx
jne 0x73c5ef
jmp 0x73c996
mov dword [esp + 0x54], edx
jmp 0x73c996
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp], esi
call fcn.00692650
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x73c590
mov dword [esp + 0x54], esi
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x64]
cmp ebx, 5
jne 0x73c5e4
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov dword [esp + 0x7c], edx
mov edx, esi
jb 0x73c5ef
jmp 0x73cfc8
mov dword [esp + 0x7c], edx
mov edx, esi
jmp 0x73cfc8
mov eax, 0x1b
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x73c612
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
mov edi, dword [esp + 0x7c]
jne 0x73cb53
jmp 0x73c616
mov edi, dword [esp + 0x7c]
cmp eax, 0x10
je 0x73c650
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x73c659
mov eax, dword [esp + 0xa8]
cmp eax, 0xffffffff
jne 0x73c662
mov ecx, 8
mov edx, eax
not edx
and edx, 1
add edx, eax
je 0x73c662
mov dword [esp + 0x7c], edi
mov al, 0xc
mov dword [esp + 0x40], eax
jmp case.0x73c8e2.3
mov dword [esp + 0x7c], edi
jmp case.default.0x73c745
mov dword [esp + 0x7c], edi
jmp case.default.0x73c745
mov ebx, esi
mov dword [esp + 0x7c], edi
mov cl, 0xc
mov dword [esp + 0x40], ecx
mov ecx, 0x1b
mov byte [esp + 0x3f], 0x62
mov edx, dword [ebp + 8]
lea esi, [edx + 4]
mov dword [esp + 0x48], esi
mov edx, dword [edx + 4]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0x10]
add eax, 0x10
mov dword [esp + 0x34], eax
mov eax, edx
test eax, eax
jne 0x73c6d2
mov edi, 0x1c
mov edx, eax
mov dword [esp + 0x30], edx
not eax
and eax, 1
add eax, edx
mov esi, ebx
je 0x73c6d8
cmp edi, 0xd
je 0x73c74c
xor eax, eax
test al, al
je case.default.0x73c745
jmp 0x73c74c
mov dword [esp + 0x30], eax
mov esi, ebx
cmp ecx, 0x10
mov dl, byte [esp + 0x3f]
mov edi, dword [esp + 0x7c]
je 0x73c74c
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x73c74c
mov eax, 0xf
movzx ecx, dl
cmp ecx, 0x62
je 0x73c85d
mov byte [esp + 0x3f], 0x62
mov byte [esp + 0x5f], 0x79
mov eax, 3
mov ecx, dword [esp + 0x30]
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
sub ecx, eax
mov eax, dword [esp + 0x34]
mov dword [eax], ecx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov edx, dword [eax]
dec edx
cmp edx, 3
ja case.default.0x73c745
mov ecx, 6
mov al, 0x29
jmp dword [edx*4 + 0x7ec3f8]
mov ecx, esi
mov edx, dword [esp + 0x6c]
movzx eax, byte [esp + 0x83]
mov ebx, ecx
cmp eax, 4
je 0x73c4e1
mov dword [esp + 0x64], edx
mov dl, 4
mov al, 0x5e
mov edi, dword [esp + 0x60]
mov ecx, edi
and ecx, 1
xor ecx, edi
cmp ecx, 0xffffffff
setne cl
movzx esi, cl
add esi, edi
mov ecx, dword [ebp + 8]
cmp esi, dword [ecx + 8]
jae 0x73c7af
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x73c7af
mov dword [esp + 0x74], esi
mov byte [esp + 0x83], 4
mov edi, ebx
mov dword [esp + 0x68], ebx
jmp 0x73c024
mov dword [esp + 0x74], esi
mov edi, 0xe
movzx ecx, al
cmp ecx, 0x23
je 0x73c82c
mov eax, 0x14
cmp ecx, 0x3f
je 0x73c846
mov eax, 0x10
cmp ecx, 0x5e
jne 0x73c97d
mov byte [esp + 0x83], dl
mov ecx, dword [esp + 0x84]
test ecx, ecx
je 0x73ca1d
mov al, 0x59
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x68], ebx
mov dword [esp + 0x70], ebx
mov esi, ebx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x7c], ebx
jne 0x73ceaf
jmp 0x73ce95
mov dword [esp + 0xb0], 0x700002bb
mov edx, esi
jmp 0x73cfc8
mov byte [esp + 0x83], dl
mov dword [esp + 0x68], ebx
mov esi, ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], eax
jmp 0x73ce61
mov byte [esp + 0x83], dl
mov edi, ebx
mov dword [esp + 0x68], ebx
mov esi, ebx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x6c], ecx
cmp eax, 0xf
je 0x73c88b
xor eax, eax
test al, al
jne 0x73c88b
mov al, 0x59
cmp dword [esp + 0x84], 0
mov ebx, edi
mov dword [esp + 0x7c], edi
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x70], ecx
jne 0x73ceaf
jmp 0x73ce95
mov ebx, esi
mov eax, 0x10
mov byte [esp + 0x3f], 0x2d
mov byte [esp + 0x5f], 0x79
mov esi, dword [esp + 0x30]
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
mov edx, esi
sub edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [ecx], edx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ecx]
mov edx, dword [ecx]
dec edx
cmp edx, 3
ja case.default.0x73c8e2
mov dword [esp + 0x7c], edi
mov ecx, 0x15
mov al, 0x29
mov esi, ebx
jmp dword [edx*4 + 0x7ec408]
mov ebx, esi
xor eax, eax
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x4c]
jmp 0x73c91a
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x18], ecx
test eax, eax
jne 0x73c9fe
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x73c900
mov edx, ebx
jmp 0x73cf35
cmp ecx, 8
je 0x73c948
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x73cfb5
mov eax, 0xb
mov ecx, dword [esp + 0x40]
movzx ecx, cl
cmp ecx, 0xc
je 0x73ca34
mov edi, 0x11
mov ebx, 6
cmp ecx, 0x7a
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
je 0x73cccd
jmp 0x73c371
mov byte [esp + 0x83], dl
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x68], ebx
mov esi, ebx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x6c], ecx
cmp eax, 8
jne 0x73c51b
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x70]
jmp 0x73cf13
mov ecx, 0xd
movzx eax, al
cmp eax, 0x40
jne 0x73ca05
mov edi, esi
xor eax, eax
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
jmp 0x73c9e4
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x1c], ecx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x73c9d0
mov edx, edi
jmp 0x73cf35
mov edx, ebx
jmp 0x73cf35
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x74]
jmp 0x73c422
mov esi, ebx
jmp 0x73c616
mov dword [esp + 0x68], ebx
mov dword [esp + 0x70], ebx
mov esi, ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], eax
jmp 0x73ce95
mov ecx, esi
mov edi, dword [esp + 0x74]
jmp 0x73c23c
cmp ecx, 2
adc eax, 0
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x20], ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb edx, edx
and edx, 1
cmp eax, edx
jb 0x73ca40
mov edx, ebx
jmp 0x73cf35
mov byte [esp + 0x5f], 0x79
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + eax*2]
mov edi, edx
mov edx, dword [ecx + eax*8 + 0x10]
mov esi, dword [ecx + eax*8 + 0x14]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0068ece0
mov edx, edi
mov dword [esp + 0xb0], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x73cfc8
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 0x10]
mov esi, dword [ecx + eax*8 + 0x14]
mov edi, dword [ecx + eax*8 + 4]
mov ebx, dword [ecx + eax*8]
mov dword [esp + 0x2c], ebx
movzx eax, byte [ecx + eax*8 + 8]
mov ebx, 0xe
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 8], 1
call fcn.007855d0
mov edx, dword [esp + 0x64]
mov dword [esp + 0xb0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, edx
jne 0x73cfc8
cmp ebx, 4
mov edi, dword [esp + 0x7c]
jne 0x73cb53
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jb 0x73c495
mov dword [esp + 0x7c], edi
lea eax, [esp + 0xb0]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0x18], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
call fcn.007855d0
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x73cbed
mov edi, esi
mov esi, 6
mov bl, 0x45
nop dword [eax]
cmp esi, 5
jne 0x73cbc0
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x73cbf4
movzx eax, bl
cmp eax, 0x3a
jne 0x73cbfb
mov esi, 5
mov bl, 0x66
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0068e960
test eax, eax
jne 0x73cbb0
mov edx, edi
jmp 0x73cfc8
mov edx, esi
jmp 0x73cfc8
mov esi, edi
jmp 0x73cd0b
cmp eax, 0x45
jne 0x73cc67
mov ebx, dword [esp + 0x6c]
mov esi, edi
mov ecx, 6
cmp ecx, 6
je 0x73cc99
xor eax, eax
test al, al
jne 0x73cc99
mov edi, 0xc
mov byte [esp + 0x82], 0x30
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.007895f0
mov dword [esp + 0xb0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, ebx
mov edx, ecx
jne 0x73bf56
jmp 0x73c752
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0068e960
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov esi, edi
mov edx, esi
je 0x73cfc8
jmp 0x73cd0b
mov edi, 3
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0068e960
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, ebx
mov ebx, 8
jne 0x73ccf8
cmp edi, 3
je 0x73cced
mov eax, edi
and eax, 1
inc eax
xor eax, edi
je 0x73cced
mov al, 0xc
mov dword [esp + 0x40], eax
mov dword [esp + 0xb0], 0x700002bb
mov edx, esi
mov dword [esp + 0x6c], ecx
jmp 0x73cfc8
mov eax, ecx
mov dword [esp + 0x6c], eax
cmp ebx, 2
mov ecx, esi
mov edx, eax
je 0x73c752
mov dword [esp + 0x64], esi
mov eax, dword [esp + 0x88]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.007858c0
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0x64]
jmp 0x73cfc8
mov eax, 2
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x73cdaf
mov byte [esp + 0x7b], 0x37
xor ecx, ecx
test cl, cl
je 0x73ce12
jmp 0x73cdb4
mov byte [esp + 0x7b], 0x37
cmp eax, 2
jne 0x73cdc5
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x73ce03
mov bh, byte [esp + 0x47]
movzx eax, bh
cmp eax, 1
je 0x73bffb
mov edi, edx
xor eax, eax
mov edx, 0xbe
lea ecx, [edx - 0xb7]
xor edx, ecx
mov esi, dword [ebp + 8]
lea esi, [esi + 4]
mov dword [esp + 0x50], esi
mov byte [esp + 0x82], bl
mov byte [esp + 0x83], bl
jmp 0x73bfa9
mov eax, dword [esp + 0xb0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x64], edx
xor esi, esi
mov edi, 8
add edi, 8
jmp 0x73ce46
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], ebx
call fcn.00627900
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x73ce30
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x64]
cmp edi, 0xe
jne 0x73ce03
mov eax, 3
sub eax, edi
xor eax, edi
je 0x73ce03
mov al, 0x59
mov ecx, dword [esp + 0x84]
test ecx, ecx
jne 0x73ceab
mov edx, 3
sub edx, ecx
xor edx, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x7c], ebx
je 0x73ceaf
mov dword [esp + 0xb0], 0x7000002f
mov dword [esp + 0x7c], ebx
mov edx, esi
jmp 0x73cfc8
mov dword [esp + 0x7c], ebx
mov ecx, 0xc
movzx eax, al
cmp eax, 0x59
jne 0x73cec5
mov edx, dword [esp + 0x68]
jmp 0x73cfe3
mov dword [esp + 0x64], esi
mov eax, 3
mov esi, dword [esp + 0xac]
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp esi, ecx
mov ecx, dword [esp + 0x68]
jne 0x73cf13
cmp eax, 3
jne 0x73cf29
mov dword [esp + 0x70], ecx
mov dword [esp + 0x54], esi
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov esi, dword [esp + 0x64]
mov edx, esi
jne 0x73c5ef
jmp 0x73cf35
mov dword [esp + 0x70], ecx
xor edi, edi
mov ebx, 0xd8
add ebx, 0xffffff2d
jmp 0x73c5aa
mov dword [esp + 0x70], ecx
mov dword [esp + 0x54], esi
mov edx, dword [esp + 0x64]
mov eax, 6
movzx ecx, byte [esp + 0x5f]
cmp ecx, 0x79
je 0x73ca67
cmp eax, 6
jne 0x73cfc8
mov edi, edx
mov byte [esp + 0x5f], 0x51
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 0x10]
mov esi, dword [ecx + eax*8 + 0x14]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0068ece0
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x73cfc6
mov ecx, 0xe
mov edx, eax
not edx
and edx, 1
add edx, eax
mov edx, edi
mov esi, edx
je 0x73cfc8
cmp ecx, 6
jne 0x73d015
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov edx, esi
je 0x73cab9
mov ebx, esi
xor eax, eax
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x4c]
jmp 0x73ca4c
mov edx, edi
mov ecx, 0xf
mov al, byte [esp + 0x7b]
movzx eax, al
cmp eax, 0x37
je 0x73cd92
mov esi, edx
mov edx, dword [esp + 0x70]
cmp ecx, 0xc
je 0x73c55c
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x73c55c
mov byte [esp + 0x7b], 0x20
mov ebx, dword [esp + 0x84]
test ebx, ebx
mov edx, esi
jne 0x73ce12
jmp 0x73ce03
mov edx, esi
jmp 0x73cab9