Function at 0x51f860
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x510
mov edi, edx
mov esi, ecx
mov eax, dword [ebp + 0xc]
cmp eax, 0x30
je 0x51f8d4
mov ebx, 0x58b130b2
cmp eax, 0x31
jne 0x51fbca
mov byte [0x80dc38], 0
call fcn.004578e0
test eax, eax
je 0x51fce8
add ebx, 0xa74ecf5f
mov dword [esp + 0xb4], eax
mov byte [esp + 0xb0], al
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa8], dl
mov byte [esp + 0xac], cl
cmp ebx, 9
jne 0x51fe2b
jmp 0x521942
mov dword [esp + 0x4cc], 0
mov dword [esp + 0x4c8], 0
mov dword [esp + 0x4d0], 0
mov dword [esp + 0x4c4], 0
lea eax, [esp + 0x4c8]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x4c8], 0x3b
mov dword [esp + 0x4ec], 0
mov dword [esp + 0x4e8], 0
mov dword [esp + 0x4d4], 4
mov dword [esp + 0x4d8], 2
mov dword [esp + 0x4dc], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x4e0], edi
mov dword [esp + 0x4e4], 0xfffffffc
test edi, edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x8f], al
mov byte [esp + 0x53], al
mov byte [esp + 0x6a], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x69], al
mov byte [esp + 0x97], al
mov byte [esp + 0x3b], al
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x90], eax
je 0x52080a
xor eax, eax
test al, al
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x8f], al
mov byte [esp + 0x53], al
mov byte [esp + 0x6a], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x69], al
mov byte [esp + 0x97], al
mov byte [esp + 0x3b], al
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x90], eax
jne 0x52080a
mov edi, 0xa
lea eax, [esp + 0x4e8]
mov dword [esp + 8], eax
lea eax, [esp + 0x4ec]
mov dword [esp + 4], eax
lea eax, [esp + 0x4d4]
mov dword [esp], eax
call fcn.00593400
test eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov byte [esp + 0x8f], al
mov byte [esp + 0x53], al
mov byte [esp + 0x6a], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x69], al
mov byte [esp + 0x97], al
mov byte [esp + 0x3b], al
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x34], eax
jne 0x52080a
jmp 0x5205ed
mov dword [esp + 0x5c], esi
mov dword [esp + 0x508], 0
mov dword [esp + 0x504], 0
mov eax, dword [0x7dc5d4]
mov dword [esp + 0x500], eax
movsd xmm0, qword [0x7dc5cc]
movsd qword [esp + 0x4f8], xmm0
movsd xmm0, qword [0x7dc5c4]
movsd qword [esp + 0x4f0], xmm0
mov eax, edi
and eax, 3
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x51fe2b
add bl, 0xa7
movzx eax, bl
cmp eax, 0x1f
je 0x51fd5a
cmp eax, 0x59
jne 0x51fd95
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, edi
and eax, 1
mov ecx, eax
imul ecx, ecx
cmp ecx, 2
sete cl
movzx edx, cl
cmp dword [ebp + 8], 0
setne cl
cmp eax, edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0x9c], al
mov byte [esp + 0xa0], al
mov byte [esp + 0xa4], al
mov dword [esp + 0xb0], eax
mov byte [esp + 0xb4], al
je 0x51fe35
mov eax, 0x1b
test cl, cl
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov byte [esp + 0x9c], cl
mov byte [esp + 0xa0], cl
mov byte [esp + 0xa4], cl
mov dword [esp + 0xb0], ecx
mov byte [esp + 0xb4], cl
jne 0x5203a0
jmp 0x51fe35
lea eax, [ebx + ebx - 0x58b130a1]
add al, 0x70
movzx eax, al
cmp eax, 0x33
jne 0x51fd2d
call fcn.00449410
cmp eax, 0xc
je 0x51fe2b
mov esi, 0x10
mov dword [esp + 0xb4], eax
mov byte [esp + 0xa8], al
mov byte [esp + 0xac], al
mov byte [esp + 0xb0], al
jmp 0x521613
mov esi, 2
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb4], eax
mov byte [esp + 0xb0], al
mov byte [esp + 0xa8], al
mov byte [esp + 0xac], al
jmp 0x521afa
mov eax, 0x12
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov byte [esp + 0x9c], cl
mov byte [esp + 0xa0], cl
mov byte [esp + 0xa4], cl
mov dword [esp + 0xb0], ecx
mov byte [esp + 0xb4], cl
jmp 0x520263
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
and eax, edi
mov ecx, eax
imul ecx, ecx
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov byte [esp + 0x9c], al
mov byte [esp + 0xa0], al
mov byte [esp + 0xa4], al
mov dword [esp + 0xb0], eax
mov byte [esp + 0xb4], al
je 0x51fe35
mov eax, 6
cmp dword [ebp + 8], 0
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov byte [esp + 0x9c], cl
mov byte [esp + 0xa0], cl
mov byte [esp + 0xa4], cl
mov dword [esp + 0xb0], ecx
mov byte [esp + 0xb4], cl
jne 0x520109
jmp 0x51fe35
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, edi
and ecx, 2
imul eax, eax
and eax, 3
cmp eax, 2
sete dl
mov eax, edi
and eax, 2
mov eax, 0x18
je 0x5204a7
xor ecx, 2
add ecx, 2
je 0x5204a7
movzx ecx, dl
cmp dword [ebp + 0x10], ecx
je 0x5204a7
mov dword [esp + 0x98], edi
mov esi, 8
mov bl, 0x21
lea edi, [esp + 0x4f0]
nop word cs:[eax + eax]
cmp esi, 8
jne 0x51fefa
movzx eax, bl
cmp eax, 0x30
jne 0x51ff06
mov esi, 0x16
mov bl, 0x30
mov byte [esp + 0xa4], 0x22
mov byte [esp + 0x9c], 0x55
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4f8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4fc], eax
lea eax, [esp + 0x508]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00594ba0
test eax, eax
mov dword [esp + 0xac], edi
jne 0x51fe90
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0x98]
jmp 0x520421
mov edi, dword [esp + 0x98]
jmp 0x520581
cmp eax, 0x21
mov edi, dword [esp + 0x98]
jne 0x51ff78
mov ebx, 7
mov byte [esp + 0xa4], 0x22
mov byte [esp + 0x9c], 0x55
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4f8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4fc], eax
lea eax, [esp + 0x4f0]
mov dword [esp + 0xac], eax
lea ecx, [esp + 0x508]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00594ba0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5201c7
jmp 0x520421
mov byte [esp + 0xa4], 0x22
mov byte [esp + 0x9c], 0x55
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x4f8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x4fc], eax
lea eax, [esp + 0x4f0]
mov dword [esp + 0xac], eax
lea ecx, [esp + 0x508]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00594ba0
test eax, eax
jne 0x520581
mov esi, 0x15
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x520409
jmp 0x520581
mov ebx, edi
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x10]
test esi, esi
je 0x520039
xor eax, eax
test al, al
jne 0x520039
xor edi, edi
jmp 0x520026
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
adc edi, 0
mov dword [esp], esi
mov dword [esp + 4], 0x4ddaa0
call fcn.007c56d0
mov dword [esp], esi
call fcn.004936c0
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x520000
mov eax, 0xd
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x10], 0
mov edi, ebx
jmp 0x5202a1
mov byte [esp + 0x9c], 0x55
mov byte [esp + 0xa0], 0x24
mov eax, dword [esp + 0x508]
lea ecx, [esp + 0x504]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx esi, cl
mov ecx, dword [esp + 0x504]
test ecx, ecx
setne dl
cmp eax, esi
jne 0x520529
test dl, dl
je 0x520529
mov dword [esp + 0x98], edi
xor edx, edx
lea esi, [esp + 0x500]
jmp 0x5200ef
mov eax, 0xf
mov byte [esp + 0xb4], 0x25
mov edi, edx
or edi, 2
mov ebx, edx
xor ebx, 2
add ebx, edi
setne bl
movzx edi, bl
add edx, edi
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xa8], esi
mov edi, 3
sub edi, edx
xor edi, edx
setne bl
movzx edi, bl
cmp edx, edi
jb 0x5200c0
mov edi, dword [esp + 0x98]
cmp eax, 6
jne 0x52011e
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x51ffdf
movzx eax, byte [esp + 0xb4]
cmp eax, 0x25
je 0x5201d5
cmp eax, 0x7f
jne 0x5202af
mov ebx, 0x10
mov byte [esp + 0xb4], 0x3b
mov ecx, dword [esp + 0xac]
mov dword [ecx], 4
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
mov dword [esp], ecx
call fcn.00595750
mov eax, dword [esp + 0x508]
lea ecx, [esp + 0x504]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx esi, cl
mov edx, dword [esp + 0x504]
mov dword [esp + 0xb0], edx
test edx, edx
setne cl
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
cmp eax, esi
jne 0x5201c7
mov esi, 0xe
or cl, dl
jne 0x52051c
cmp ebx, 7
je 0x520581
jmp 0x520529
mov byte [esp + 0xb4], 0x25
mov ecx, dword [esp + 0xac]
mov dword [ecx], 4
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
mov dword [esp], ecx
call fcn.00595750
mov eax, dword [esp + 0x508]
lea ecx, [esp + 0x504]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov edx, dword [esp + 0x504]
cmp eax, ecx
jne 0x52031c
test edx, edx
je 0x520334
mov eax, 5
mov ecx, edx
mov dword [esp + 0xb0], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x520529
cmp eax, 5
je 0x52011e
imul eax, eax
and eax, 3
cmp eax, 2
je 0x52011e
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, edi
test al, 1
je 0x51fe35
mov eax, 0xb
cmp dword [ebp + 8], 0
je 0x51fe35
cmp eax, 0xb
jne 0x51fe35
jmp 0x51ffdf
mov byte [esp + 0xb4], 0x7f
mov ecx, dword [esp + 0xac]
mov dword [ecx], 4
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
mov dword [esp], ecx
call fcn.00595750
mov eax, dword [esp + 0x508]
lea ecx, [esp + 0x504]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, dword [esp + 0x504]
test eax, eax
jne 0x520328
mov eax, 9
test ecx, ecx
mov dword [esp + 0xb0], ecx
jne 0x5205d0
jmp 0x520529
mov dword [esp + 0xb0], edx
jmp 0x520529
mov dword [esp + 0xb0], ecx
jmp 0x520529
mov dword [esp + 0xb0], edx
jmp 0x520529
mov byte [esp + 0xa0], 0x23
mov eax, dword [esp + 0x508]
mov dword [esp], eax
call fcn.00595380
jmp 0x520581
mov esi, 0xc
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
adc edi, 0
mov eax, dword [esp + 0xac]
mov dword [eax], 3
mov dword [esp], eax
call fcn.00595550
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x520360
jmp 0x5205a3
mov dword [esp + 0x98], edi
xor edi, edi
cmp eax, 0xf
mov ebx, 3
je 0x5203f4
imul eax, eax
and eax, 3
cmp eax, 3
je 0x5203f4
mov edi, dword [esp + 0x98]
jmp 0x51ffdf
mov esi, 0xb
mov byte [esp + 0xa4], 0x22
inc edi
mov eax, dword [esp + 0xac]
mov dword [eax], 3
mov dword [esp], eax
call fcn.00595550
dec ebx
mov eax, edi
xor eax, ebx
setne al
movzx eax, al
cmp edi, eax
jb 0x5203d0
mov edi, dword [esp + 0x98]
cmp esi, 0xb
je 0x51fe2b
imul esi, esi
and esi, 3
cmp esi, 2
je 0x51fe2b
movzx ecx, byte [esp + 0x9c]
cmp ecx, 0x1d
je 0x52004f
mov eax, 9
cmp ecx, 0x29
jne 0x5204a7
mov ebx, edi
mov byte [esp + 0x9c], 0x1d
mov byte [esp + 0xa0], 0x24
mov eax, dword [esp + 0x508]
lea ecx, [esp + 0x504]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx esi, cl
mov ecx, dword [esp + 0x504]
test ecx, ecx
setne dl
mov edi, ecx
and edi, 1
inc edi
xor edi, ecx
sete dh
cmp eax, esi
jne 0x520527
or dl, dh
mov edi, ebx
jne 0x5200a6
jmp 0x520529
cmp eax, 9
je 0x5204bb
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x51fe2b
mov esi, 0x18
mov byte [esp + 0x9c], 0x29
mov byte [esp + 0xa0], 0x24
mov eax, dword [esp + 0x508]
lea ecx, [esp + 0x504]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52051c
mov ecx, dword [esp + 0x504]
test ecx, ecx
je 0x52051c
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
jne 0x5200a6
cmp esi, 0xe
je 0x52011e
jmp 0x520529
mov edi, ebx
mov eax, 0x10
movzx ecx, byte [esp + 0xa0]
cmp ecx, 0x24
je 0x5205d0
cmp ecx, 0x30
jne 0x520340
xor esi, esi
mov bl, 1
jmp 0x520579
mov byte [esp + 0xa0], 0x24
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x508]
mov dword [esp], eax
call fcn.00595380
test esi, esi
je 0x520550
test bl, bl
je 0x520550
mov esi, 0x17
mov al, byte [esp + 0xa4]
movzx ecx, al
cmp ecx, 0x22
je 0x5205e6
mov eax, 0xf
cmp ecx, 0x29
je 0x5203a0
cmp esi, 0xc
je 0x51fe2b
xor eax, eax
test al, al
jne 0x51fe2b
mov eax, dword [esp + 0xac]
mov dword [eax], 3
mov dword [esp], eax
call fcn.00595550
jmp 0x51fe2b
cmp eax, 9
je 0x52011e
mov byte [esp + 0xa0], 0x30
jmp 0x520348
xor edi, edi
jmp 0x520388
cmp edi, 9
jne 0x52060a
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x52060a
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jmp 0x5209d6
mov eax, dword [esp + 0x4e8]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x4cc]
mov ecx, dword [esp + 0x4d0]
mov dword [esp + 0x40], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x4cc]
mov dword [esp + 0x90], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x520738
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x520738
mov edi, 0xf
mov byte [esp + 0x3b], 0x41
mov dword [esp + 0x4cc], eax
mov ecx, dword [esp + 0x4d0]
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x4d0], edx
mov ecx, dword [esp + 0x40]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [esp + 0x4cc]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [esp + 0x4cc]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [esp + 0x4cc]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x4cc]
mov edx, dword [esp + 0x9c]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [esp + 0x4cc]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
jne 0x520745
mov edx, eax
or edx, 2
mov dword [esp + 0xb4], eax
mov ecx, eax
xor ecx, 2
add ecx, edx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jne 0x52080a
jmp 0x521198
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jmp 0x52080a
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jmp 0x521198
mov byte [esp + 0x3b], 0x1b
mov byte [esp + 0x97], 9
mov ecx, dword [esp + 0x9c]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
je 0x5213f6
mov esi, ebx
xor ebx, ebx
jmp 0x5207cc
mov edi, 4
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.007c51d0
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp ebx, eax
jb 0x520790
mov ebx, esi
jmp 0x520f38
mov byte [esp + 0x97], 0xa
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0xb4]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x4ec]
mov dword [esp], eax
call fcn.004936c0
lea eax, [esp + 0x4c4]
mov dword [esp + 8], eax
lea eax, [esp + 0x4c8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.0059a8d0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x520889
mov cl, 0x35
movzx ecx, cl
cmp ecx, 0x35
jne 0x520892
mov cl, 0x3f
mov esi, dword [esp + 0x4c4]
lea edx, [esi + 4]
mov dword [esp + 0xa0], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x70], 0
test edx, edx
jne 0x5208d8
mov dword [esp + 0x74], 0
jmp 0x521545
mov dword [esp + 0x34], eax
jmp 0x520968
mov dword [esp + 0x34], eax
mov cl, 0x3f
mov esi, dword [esp + 0x4c4]
lea edx, [esi + 4]
mov dword [esp + 0xa0], edx
mov edx, dword [esi + 4]
mov edi, edx
and edi, 1
inc edi
xor edi, edx
sete ch
movzx edi, ch
cmp edx, edi
jne 0x5208de
mov edi, 0x10
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
jmp 0x5209c7
mov dword [esp + 0x7c], edx
jmp 0x5208e6
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x34]
movzx ecx, cl
cmp ecx, 0x62
jne 0x52093c
xor ecx, ecx
add esi, 8
mov byte [esp + 0x6a], dl
mov byte [esp + 0x6b], dl
mov byte [esp + 0x69], dl
jmp 0x520920
mov byte [esp + 0x69], 0x1a
mov byte [esp + 0x6b], 0x31
mov byte [esp + 0x6a], 0x56
inc ecx
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
xor ebx, ebx
cmp ecx, edx
jb 0x520910
mov dword [esp + 0x34], eax
jmp 0x520954
mov dword [esp + 0x34], eax
mov byte [esp + 0x69], 0x1a
mov byte [esp + 0x6b], 0x31
mov byte [esp + 0x6a], 0x56
add esi, 8
xor ebx, ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x84], 0
jmp 0x520dd6
mov edi, 2
mov byte [esp + 0x53], 0x31
mov byte [esp + 0x8f], 0xa
lea eax, [esp + 0x4d0]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x4d0]
mov dword [esp + 0x64], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
mov dword [esp + 0x60], 0
cmp ecx, eax
lea eax, [esp + 0x4cc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], eax
jne 0x520a75
cmp edi, 2
je 0x5209d6
xor eax, eax
test al, al
je 0x521545
movzx ecx, byte [esp + 0x53]
mov esi, ebx
cmp ecx, 0x3b
je 0x520a21
mov eax, 0xa
cmp ecx, 0x62
jne 0x520a5c
mov edi, 3
mov byte [esp + 0x53], 0x62
mov bl, 0x31
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x4c4]
mov dword [esp + 0x80], eax
test eax, eax
jne 0x520b63
jmp 0x520ff7
mov byte [esp + 0x53], 0x3b
mov bl, 0x31
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [esp + 0x4c4]
test ecx, ecx
jne 0x520a69
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x80], ecx
jne 0x5210e2
jmp 0x520b63
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
jmp 0x520b18
mov dword [esp + 0x80], ecx
jmp 0x520b63
cmp edi, 2
je 0x520adb
imul edi, edi
and edi, 3
cmp edi, 3
je 0x520adb
mov edi, 6
mov byte [esp + 0x6b], 0x31
imul eax, dword [esp + 0x78], 0x1c
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax + 0x14]
mov dword [esp + 0x74], 0x30000003
cmp eax, 4
jne 0x520acb
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
jne 0x5215bc
jmp 0x520cf5
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
jmp 0x520cf5
mov esi, ebx
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x60]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 0x14]
test edi, edi
jne 0x520bdc
mov eax, 0x17
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
je 0x520bdc
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
cmp eax, 0xa
jne 0x520c0c
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x520c0c
mov dword [esp + 0x58], edx
mov dword [esp + 0x6c], edi
mov byte [esp + 0x53], 0x31
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x4c4]
mov dword [esp + 0x80], eax
test eax, eax
mov bl, 0x31
je 0x5210e2
mov eax, 0xf
movzx ecx, bl
cmp ecx, 2
je 0x520c19
mov eax, 0x11
cmp ecx, 5
je 0x520c20
mov esi, 0x1a
cmp ecx, 0x31
jne 0x5210bb
xor esi, esi
mov edi, dword [esp + 0x80]
jmp 0x520bc4
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x520ba0
jmp 0x5210e2
xor ebx, ebx
movzx ecx, byte [esp + 0x8f]
cmp ecx, 1
je 0x520c2e
mov eax, 0x14
cmp ecx, 0xa
jne 0x520c8a
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
mov ebx, esi
jmp 0x5211d9
mov dword [esp + 0x6c], edi
mov eax, edx
mov ebx, esi
jmp 0x521206
mov ebx, esi
jmp 0x52105e
mov ecx, dword [esp + 0x80]
mov ebx, esi
jmp 0x520e14
mov eax, dword [esp + 0x64]
jmp 0x520c6d
mov byte [esp + 0x8f], 1
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add ebx, eax
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
test ebx, ebx
je 0x520c40
mov cl, 1
test cl, cl
je 0x520c40
mov dword [esp + 0x6c], edi
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
mov ebx, esi
jmp 0x521206
mov dword [esp + 0x6c], edi
mov ecx, dword [esp + 0x64]
jmp 0x520cd3
mov edi, 0xa
mov byte [esp + 0x8f], 0x30
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x88]
mov ecx, dword [eax]
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x520ca0
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
mov ebx, esi
cmp edi, 6
je 0x521545
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x58]
jne 0x521206
jmp 0x521545
mov dword [esp + 0x80], ecx
mov eax, 0x10
mov byte [esp + 0x6a], 0x56
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
mov dword [esp + 0xa8], edx
imul ecx, ebx, 0x1c
mov ecx, dword [edx + ecx + 4]
cmp ecx, 1
je 0x520d47
mov esi, ebx
cmp ecx, 0x3e
jmp 0x520d78
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 0xac], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0x34]
jmp 0x521568
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xa4], eax
je 0x520efb
mov dword [esp + 0x78], esi
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx ebx, al
add ebx, esi
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x7c]
cmp ebx, eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xac], eax
mov dword [esp + 0x70], eax
jae 0x521545
mov dword [esp + 0x74], 0
mov edi, 8
mov al, byte [esp + 0x6a]
movzx ecx, al
cmp ecx, 3
je 0x520e34
cmp ecx, 0x56
je 0x520e40
mov eax, 1
cmp ecx, 0x62
jne 0x520e95
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x80]
cmp eax, 1
je 0x520d16
imul eax, eax
and eax, 3
cmp eax, 3
je 0x520d16
mov dword [esp], ecx
jmp 0x5210d5
mov eax, dword [esp + 0x84]
jmp 0x52152c
mov edi, 9
mov byte [esp + 0x6a], 3
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov dword [esp + 0xa8], ecx
imul eax, ebx, 0x1c
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x74], 0
cmp eax, 1
je 0x5210eb
mov esi, ebx
cmp eax, 0x3e
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x70], eax
je 0x520efb
jmp 0x520d94
mov byte [esp + 0x6a], 0x38
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov dword [esp + 0xa8], ecx
imul eax, ebx, 0x1c
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x74], 0
cmp eax, 1
je 0x521118
mov edi, 0xf
cmp eax, 0x3e
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], ebx
mov esi, ebx
mov dword [esp + 0xa4], ecx
jne 0x520ff7
mov edi, 0x11
movzx eax, byte [esp + 0x69]
cmp eax, 0x4c
mov ebx, esi
jne 0x520f95
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0xa4], ecx
cmp edi, 4
je 0x5213f6
xor eax, eax
test al, al
jne 0x5213f6
mov byte [esp + 0x69], 0x4c
imul eax, dword [esp + 0x78], 0x1c
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax + 0x14]
mov dword [esp + 0x74], 0x30000003
cmp eax, 8
jne 0x521022
mov edx, 8
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
jne 0x5212b5
jmp 0x521545
mov eax, 0x19
mov byte [esp + 0x69], 0x1a
imul ecx, ebx, 0x1c
mov edx, dword [esp + 0xa8]
mov ecx, dword [edx + ecx + 0x14]
mov dword [esp + 0x74], 0x30000003
cmp ecx, 8
jne 0x521032
mov edx, ecx
not edx
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x78], ebx
mov edx, dword [esp + 0x84]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0x70], edx
jne 0x5212c9
jmp 0x52105e
cmp edi, 3
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x84], eax
mov esi, dword [esp + 0x78]
jne 0x520d94
jmp 0x5210e2
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
jmp 0x521545
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 0xac], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0xa4], edx
mov dword [esp + 0x70], edx
cmp eax, 0xf
jne 0x521545
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x521545
xor edi, edi
jmp 0x5210a6
mov esi, 0xa
add eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, edi
not eax
and eax, 1
mov ecx, edi
add ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x521080
mov eax, dword [esp + 0x80]
cmp esi, 0xa
je 0x5210e2
imul esi, esi
and esi, 3
cmp esi, 2
je 0x5210e2
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, dword [esp + 0x48]
jmp 0x51fe2d
mov esi, dword [esp + 0x7c]
mov eax, esi
mov ecx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x84]
mov edx, ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x30]
jmp 0x521366
mov edi, dword [esp + 0x7c]
mov eax, edi
mov ecx, ebx
mov esi, ebx
mov ebx, dword [esp + 0x84]
mov edx, ebx
mov dword [esp + 0xb0], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], ebx
jmp 0x5214bb
mov dword [esp + 0xac], ecx
mov edi, 0xd
mov byte [esp + 0x6b], 0x72
imul eax, dword [esp + 0x78], 0x1c
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax + 0x14]
cmp eax, 4
mov dword [esp + 0x74], 0x30000003
je 0x52118d
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
jne 0x521545
jmp 0x521198
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
cmp edi, 0xd
jne 0x5211ac
mov eax, edi
not eax
and eax, 1
add eax, edi
jne 0x5215bc
movzx ecx, byte [esp + 0x3b]
cmp ecx, 0x41
je 0x52126f
cmp ecx, 0x61
je 0x5213c2
mov eax, 0xd
cmp ecx, 0x6a
jne 0x520759
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x58]
cmp eax, 0xd
je 0x521247
imul eax, eax
and eax, 3
cmp eax, 2
je 0x521247
mov byte [esp + 0x8f], 0xa
mov dword [esp], edi
mov dword [esp + 0x6c], edi
call fcn.004936c0
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
mov ecx, 0xf
mov esi, dword [esp + 0x44]
mov edx, esi
not edx
and edx, 1
add edx, esi
setne dl
movzx edx, dl
add edx, esi
mov dword [esp + 0x60], edx
cmp edx, eax
jb 0x521241
mov edi, 9
xor edx, edx
test dl, dl
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], eax
je 0x5205ed
jmp 0x5212a3
mov dword [esp + 0x58], eax
jmp 0x5212a3
mov dword [esp + 0x58], edx
mov dword [esp + 0x6c], edi
mov byte [esp + 0x3b], 0x41
mov byte [esp + 0x97], 9
cmp dword [esp + 0x9c], 0
jne 0x520786
jmp 0x5213f6
mov edx, 0xb
mov ecx, 0x19
mov byte [esp + 0x3b], 0x61
mov byte [esp + 0x97], 9
mov edi, dword [esp + 0x9c]
mov eax, edi
and eax, 1
inc eax
xor eax, edi
sete al
movzx eax, al
cmp edi, eax
mov eax, dword [esp + 0x64]
jne 0x5212b5
cmp ecx, 0xf
mov dword [esp + 0x64], eax
je 0x520adb
jmp 0x5213f6
cmp edx, 8
je 0x5212c9
imul edx, edx
and edx, 3
cmp edx, 3
jne 0x520786
mov dword [esp + 0x30], ebx
mov eax, dword [ebp + 0x14]
xor esi, esi
imul edx, dword [esp + 0x78], 0x1c
jmp 0x521328
mov edi, 6
mov ecx, esi
and ecx, 1
xor ecx, esi
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add esi, ecx
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + edx + 0x18]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xac], ecx
test esi, esi
jne 0x52133a
mov ebx, esi
or ebx, 2
mov ecx, esi
xor ecx, 2
add ecx, ebx
jne 0x5212e0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x84], esi
mov ebx, dword [esp + 0x78]
cmp edi, 6
jne 0x5213a0
mov esi, edi
and esi, 1
xor esi, edi
not esi
test esi, esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0xac], esi
mov dword [esp + 0x78], ebx
mov esi, ebx
jne 0x520d94
jmp 0x5214c9
mov esi, dword [esp + 0x7c]
mov dword [esp + 0xb0], esi
mov esi, dword [esp + 0x84]
mov dword [esp + 0xac], esi
mov dword [esp + 0x78], ebx
jmp 0x5214c9
mov eax, 4
mov byte [esp + 0x3b], 0x6a
mov byte [esp + 0x97], 9
mov edx, dword [esp + 0x9c]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x520786
jmp 0x52145c
mov al, byte [esp + 0x97]
movzx eax, al
cmp eax, 9
jne 0x5207e7
mov dword [esp + 0x30], ebx
xor ecx, ecx
mov eax, dword [esp + 0x40]
lea edx, [eax + eax*2]
jmp 0x521447
mov eax, 0x10
mov byte [esp + 0x97], 9
cmp edi, 2
adc ecx, 0
mov esi, dword [esp + 0x90]
mov esi, dword [esi]
mov edi, dword [esp + 0xb4]
mov dword [esi + edx*8 + 0x14], edi
mov edi, ecx
imul edi, edi
and edi, 3
test ecx, ecx
je 0x521420
cmp edi, 3
je 0x521420
mov ebx, dword [esp + 0x30]
cmp eax, 4
je 0x5213f6
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x52080a
jmp 0x5213f6
mov byte [esp + 0x6a], 0x62
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov dword [esp + 0xa8], ecx
imul eax, ebx, 0x1c
mov eax, dword [ecx + eax + 4]
cmp eax, 1
je 0x521499
mov esi, ebx
cmp eax, 0x3e
jmp 0x520d78
mov edi, dword [esp + 0x7c]
mov eax, edi
mov ecx, ebx
mov esi, ebx
mov ebx, dword [esp + 0x84]
mov edx, ebx
mov dword [esp + 0xb0], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x78], esi
mov dword [esp + 0xac], ebx
mov dword [esp + 0xa4], ebx
mov edi, 0x12
movzx ebx, byte [esp + 0x6b]
cmp ebx, 0xb
je 0x521587
cmp ebx, 0x72
jne 0x521599
mov byte [esp + 0x6b], 0xb
imul esi, dword [esp + 0x78], 0x1c
mov edi, dword [esp + 0xa8]
cmp dword [edi + esi + 0x14], 4
je 0x5215af
xor ebx, ebx
test bl, bl
jne 0x5215af
mov edi, 9
mov dword [esp + 0x74], 0x30000003
mov dword [esp + 0x7c], eax
mov ebx, ecx
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
cmp edi, 8
jne 0x521545
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
jne 0x521471
mov eax, 0xe
mov edx, dword [esp + 0x70]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
mov ecx, edx
cmove ecx, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
cmp eax, 0xe
mov eax, dword [esp + 0x7c]
mov ecx, ebx
mov edx, dword [esp + 0x84]
je 0x520968
jmp 0x5214c9
mov dword [esp + 0x7c], eax
mov ebx, ecx
mov dword [esp + 0x84], edx
jmp 0x520a75
mov dword [esp + 0x7c], eax
mov ebx, ecx
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0xac]
jmp 0x5215de
mov dword [esp + 0x7c], eax
mov ebx, ecx
mov dword [esp + 0x84], edx
mov edi, 3
imul eax, dword [esp + 0x78], 0x1c
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [eax]
mov eax, dword [esp + 0x54]
mov dword [esp + 0xb0], eax
cmp edi, 3
jne 0x521143
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x521143
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], ecx
mov esi, dword [esp + 0x78]
jmp 0x520d94
cmp esi, 0x10
jne 0x51fe2b
jmp 0x52162c
call fcn.00449410
cmp eax, 0xc
je 0x51fe2b
mov ebx, 0xb
lea edi, [esp + 0xc4]
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
call fcn.0061b160
test eax, eax
je 0x5216a4
lea ecx, [esp + 0xc0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0xa4], eax
call fcn.00590910
test eax, eax
je 0x5216b0
lea edi, [esp + 0xc4]
jmp 0x521826
mov dword [esp + 0xa4], eax
jmp 0x521bbe
mov al, 0x3f
movzx eax, al
lea edi, [esp + 0xc4]
cmp eax, 0x3f
je 0x5216d4
cmp eax, 0x48
jne 0x52174d
mov eax, 0xf
jmp 0x521849
mov ebx, 0xe
mov byte [esp + 0xac], 0xa
mov byte [esp + 0xa8], 0x7d
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xb8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
test eax, eax
jne 0x521826
jmp 0x52186b
mov esi, 0x1e
mov ebx, 9
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xb8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
mov dl, 0x7d
mov cl, 0xa
test eax, eax
jne 0x52196f
jmp 0x51f8b8
mov byte [esp + 0xac], 0x12
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xb8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
test eax, eax
je 0x521942
mov eax, 4
mov byte [esp + 0xb0], 0x1e
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xb4], ecx
test ecx, ecx
je 0x521aa7
cmp eax, 4
jne 0x52189b
mov ebx, 0xa
mov esi, 4
mov al, byte [esp + 0xb0]
movzx eax, al
cmp eax, 0x1e
jne 0x52190b
cmp ebx, 0xa
jne 0x521942
mov dword [esp + 0xa0], 0x14
mov byte [esp + 0xb0], 1
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.00590a80
jmp 0x521a9d
mov esi, 6
mov byte [esp + 0xac], 0xa
mov byte [esp + 0xa8], 0x7d
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xb8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
test eax, eax
je 0x521942
cmp esi, 4
jne 0x521826
mov esi, 0xffffffff
jmp 0x521931
mov bl, 0x1e
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.00590a80
add esi, 1
jb 0x521920
mov byte [esp + 0xb0], bl
jmp 0x521aa7
mov eax, 0xf
mov dl, byte [esp + 0xa8]
movzx ecx, dl
cmp ecx, 0x25
je 0x521b2e
mov esi, 0x10
cmp ecx, 0x7a
jne 0x521a0b
mov cl, byte [esp + 0xac]
cmp esi, 0x10
jne 0x521ae7
mov byte [esp + 0xac], cl
mov ebx, 5
mov byte [esp + 0xa8], 0x7a
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x25
mov ecx, dword [esp + 0xa4]
call fcn.00589f50
test eax, eax
jne 0x521bcc
jmp 0x521b08
mov dword [esp + 0xa0], 0xc
mov ebx, 0xd
mov byte [esp + 0xa8], 0x7d
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x25
mov ecx, dword [esp + 0xa4]
call fcn.00589f50
test eax, eax
jne 0x521c43
cmp dword [esp + 0xa0], 0xc
je 0x521b08
mov esi, 0x1c
call fcn.005959e0
test eax, eax
je 0x521613
mov ebx, 0x12
mov dword [esp + 0xc], 0xe
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00521ce0
jmp 0x521cd2
mov byte [esp + 0xa8], dl
mov byte [esp + 0xac], cl
jmp 0x521826
cmp esi, 2
je 0x52161e
jmp 0x521826
mov al, byte [esp + 0xac]
movzx ecx, al
cmp ecx, 0x12
je 0x521bd7
mov eax, 0x15
mov ebx, 4
cmp ecx, 0x2b
jne 0x521bcc
cmp eax, 0xf
jne 0x521c61
mov ebx, 6
mov byte [esp + 0xa8], 0x25
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x25
mov ecx, dword [esp + 0xa4]
call fcn.00589f50
test eax, eax
je 0x521b08
cmp ebx, 6
jne 0x521826
jmp 0x521c4c
cmp ebx, 4
je 0x5217bf
jmp 0x521c4c
mov ebx, 0x14
mov byte [esp + 0xac], 0x2b
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xb8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
test eax, eax
jne 0x521826
cmp ebx, 0xd
jne 0x521942
mov dword [esp + 4], edi
mov dword [esp], str.Failure_in_adding_the_v2c_available_in_license_file__s_n
call fcn.004414c0
jmp 0x521b08
mov esi, 0xd
mov ebx, 0xa
mov byte [esp + 0xac], 0xa
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xb8]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
test eax, eax
jne 0x521afa
cmp ebx, 0xa
jne 0x51fe2b
jmp 0x521942