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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4b4
mov dword [esp + 0x50], edx
cmp ecx, 4
je 0x58dcb6
mov edi, dword [esp + 0x4d8]
mov eax, dword [esp + 0x4d4]
cmp ecx, 5
je 0x58dd14
cmp ecx, 6
jne 0x58dd86
test eax, eax
mov edx, 0x700002bb
je 0x58f5db
xor eax, eax
test al, al
jne 0x58f5db
mov dword [esp + 0x64], 0x700002bb
mov ebx, 0x1cca954c
add ebx, 0xe3356acd
mov eax, dword [edi + 0xc]
shl eax, 0x18
or eax, dword [edi + 8]
mov dword [esp + 0x38], eax
lea ecx, [edi + 0x10]
lea esi, [edi + 0x14]
mov byte [esp + 0x48], al
mov byte [esp + 0x44], al
mov byte [esp + 0x4c], al
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], eax
jmp 0x58de5c
mov byte [0x80dc38], 0
call fcn.004578e0
test eax, eax
jne 0x58f8cb
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x58f8cb
mov ebx, 0x41683510
xor ebx, 0x41683507
mov al, bl
add al, 0x26
mov byte [esp + 0x7c], al
mov al, 0x48
movzx edi, al
lea ebp, [esp + 0x98]
mov byte [esp + 0x88], al
mov byte [esp + 0x84], al
mov dword [esp + 0x80], eax
jmp 0x58eb40
mov dword [esp + 0x70], 0x700002bb
test eax, eax
je 0x58f56f
mov edx, dword [eax]
test edx, edx
je 0x58edc6
mov dword [esp + 0x70], 0x700002bb
mov eax, dword [edi + 0xc]
shl eax, 0x18
or eax, dword [edi + 8]
mov dword [esp + 0x40], eax
mov eax, 0x14
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x68], cl
mov byte [esp + 0x6c], cl
mov byte [esp + 0x64], cl
mov dword [esp + 0x48], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
jmp 0x58eec7
mov ecx, dword [esp + 0x4c8]
mov dword [esp + 0x4b0], 0
mov dword [esp + 0x4ac], 0
mov eax, dword [0x7dc5d4]
mov dword [esp + 0x4a8], eax
movsd xmm0, qword [0x7dc5cc]
movsd qword [esp + 0x4a0], xmm0
movsd xmm0, qword [0x7dc5c4]
movsd qword [esp + 0x498], xmm0
test cl, 3
mov edx, ecx
je 0x58f8cb
mov ebx, dword [esp + 0x4cc]
mov eax, 9
mov ecx, 3
mov edi, edx
sub ecx, edi
xor ecx, edi
setne cl
movzx esi, cl
test ebx, ebx
setne cl
mov edx, ebx
and edx, 1
inc edx
xor edx, ebx
sete dl
test edi, esi
je 0x58e7e3
or cl, dl
je 0x58e7e3
mov al, 0x18
movzx ecx, al
cmp ecx, 0x18
je 0x58ee47
mov eax, 0x13
cmp ecx, 0x5d
jne 0x58e7e3
mov eax, 0x10
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
jmp 0x58fa63
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
cmp ebx, 0x10
jne 0x58de99
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jae 0x58de99
mov dword [esp + 0x60], edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], eax
mov ebx, edi
mov edx, dword [esp + 0x64]
jmp 0x58e380
mov eax, dword [esp + 0x4d4]
mov edx, dword [eax]
mov dword [esp + 0x64], 0x700002bb
test edx, edx
je 0x58ee92
mov dword [esp + 0x3c], ecx
mov eax, 9
mov byte [esp + 0x4c], 0x7d
mov byte [esp + 0x44], 0xb
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x70], ecx
mov ebx, edi
mov edi, dword [esp + 0x78]
jmp 0x58dfdc
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
test edx, edx
jne 0x58df10
mov byte [esp + 0x44], 0x7a
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
jne 0x58e030
jmp 0x58e5e0
mov byte [esp + 0x44], 0x7a
jmp 0x58e5e0
mov byte [esp + 0x4c], 8
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x38]
cmp dword [ecx], eax
je 0x58df44
mov dword [esp + 0x40], ecx
mov al, 1
test al, al
mov dword [esp + 0x54], edx
mov ebx, edi
jmp 0x58df60
mov dword [esp + 0x40], ecx
mov dword [esp + 0x54], edx
mov ebx, edi
mov edx, dword [esp + 0x64]
jmp 0x58df70
mov edx, dword [esp + 0x64]
jne 0x58e790
nop word [eax + eax]
mov eax, 0x12
mov ebp, dword [esp + 0x40]
test ebp, ebp
mov edi, dword [esp + 0x78]
je 0x58dfc0
mov eax, dword [esp + 0x4d8]
mov eax, dword [eax]
lea ebx, [ebp + 8]
cmp eax, 2
je 0x58e000
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x58e000
mov eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], eax
jmp 0x58e380
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
cmp eax, 9
jne 0x58e030
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x58e5e0
jmp 0x58e030
mov dword [esp + 0x64], edx
mov eax, 0xe
mov ecx, 4
mov dl, 0x16
movzx edx, dl
cmp edx, 0x16
mov esi, dword [esp + 0x6c]
jne 0x58e611
jmp 0x58e0fe
cmp dword [esp + 0x50], 0
jne 0x58e050
mov dword [esp + 0x78], edi
mov edi, ebx
mov eax, 7
mov edx, 0x7000002b
jmp 0x58e360
mov dword [esp + 0x60], edx
mov dword [esp + 0x6c], esi
mov esi, 4
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0x68], eax
test eax, eax
je 0x58e2c0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x68]
mov dword [esi], eax
mov eax, dword [esp + 0x4d8]
mov ecx, eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x14]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x10]
mov dword [esi + 8], eax
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [esi + 4], eax
test eax, eax
jne 0x58e1e0
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x58e1e0
mov dword [esp + 0x78], edi
mov edi, ebx
mov al, 0x57
movzx eax, al
xor esi, esi
cmp eax, 0x57
jne 0x58e1af
mov ecx, 0xd
mov dword [esp + 0x64], 0x70000003
mov esi, dword [esp + 0x6c]
mov ebx, edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x6c], esi
xor esi, esi
cmp ecx, 4
jne 0x58f59f
mov dword [esp + 0x78], edi
mov edi, ebx
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x58e15f
jmp 0x58f5a5
mov ebx, 0x12
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [edi]
mov ecx, dword [ebp + 4]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
test esi, esi
je 0x58e130
mov al, 1
test al, al
je 0x58e130
mov eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x64]
jmp 0x58e568
mov ebx, 3
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.004936c0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
mov edx, 0x70000003
cmp esi, eax
jb 0x58e190
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov esi, dword [esp + 0x6c]
jmp 0x58e7c6
mov esi, 9
mov al, 0x30
movzx eax, al
cmp eax, 0x30
je 0x58e2a2
mov dword [esp + 0x88], ebx
xor esi, esi
cmp eax, 0x3f
mov ebx, dword [esp + 0x4d4]
je 0x58e268
cmp eax, 0x46
jne 0x58e313
mov esi, dword [esp + 0x68]
mov eax, esi
add eax, 0xc
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c5200
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], esi
mov ebx, dword [esp + 0x88]
jmp 0x58e532
inc esi
mov ecx, dword [esp + 0x68]
lea eax, [ecx + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c5200
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x58e250
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x88]
jmp 0x58e532
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
nop word cs:[eax + eax]
cmp esi, 4
jne 0x58e2da
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov edx, 0x70000003
jne 0x58f5db
mov esi, dword [esp + 0x68]
mov eax, esi
add eax, 0xc
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4d4]
mov dword [esp], eax
call fcn.007c5200
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], eax
jmp 0x58e532
mov esi, 3
mov edi, dword [esp + 0x68]
mov eax, edi
add eax, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c5200
mov edx, 0x70000003
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
jmp 0x58e449
mov dword [esp + 0x64], edx
cmp eax, 7
mov ebx, edi
mov edi, dword [esp + 0x78]
jne 0x58dee0
jmp 0x58ee3c
mov esi, 0xd
mov eax, dword [esp + 0x4d8]
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 0x14]
lea eax, [edi + ecx]
cmp eax, dword [ebx]
jbe 0x58e440
mov byte [esp + 0x48], 0xe
mov dword [esp + 0x80], ecx
mov dword [esp + 0x88], ebx
mov ecx, dword [ebp + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x58e3d5
mov esi, 5
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x58e415
mov dword [ebp + 4], eax
mov edi, dword [esp + 0x6c]
mov ecx, dword [edi]
mov ebx, dword [esp + 0x3c]
add ecx, dword [ebx]
mov edx, dword [esp + 0x88]
mov edx, dword [edx]
sub ecx, edx
add eax, edx
mov esi, 0xb
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [ebx]
mov dword [esp + 0x80], eax
mov edi, dword [edi]
cmp esi, 5
mov edx, 0x70000003
je 0x58f5db
mov dword [esp + 0x7c], edi
imul esi, esi
and esi, 3
cmp esi, 3
mov ebx, dword [esp + 0x88]
jne 0x58e467
jmp 0x58f5db
mov byte [esp + 0x48], 0xe
mov dword [esp + 0x7c], edi
cmp esi, 3
je 0x58e532
mov dword [esp + 0x80], ecx
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x58e532
mov ecx, 0xc
movzx eax, byte [esp + 0x48]
cmp eax, 0x15
mov esi, dword [esp + 0x6c]
jne 0x58e4b0
mov eax, 0x18
mov byte [esp + 0x48], 0xe
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
lea ecx, [edi + ecx]
mov dword [ebx], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x78], ebp
jmp 0x58e72c
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x88], eax
mov edi, dword [esp + 0x78]
jmp 0x58e680
inc eax
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
lea ecx, [edi + ecx]
mov dword [ebx], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], esi
mov edi, ebp
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x58e4e0
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], eax
mov edi, ebx
mov ebx, 9
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
mov ecx, dword [esp + 0x4d8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + 4]
mov esi, dword [esp + 0x74]
add edx, dword [esi]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.007c51d0
xor edx, edx
cmp ebx, 9
jne 0x58e590
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
mov ebx, edi
je 0x58e380
jmp 0x58f5db
mov ebx, edi
jmp 0x58e380
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x54]
mov edx, dword [eax + 4]
test edx, edx
jne 0x58e5ce
mov byte [esp + 0x44], 0xb
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
mov ebx, edi
mov edi, dword [esp + 0x78]
jne 0x58e030
jmp 0x58e5e0
mov byte [esp + 0x44], 0xb
mov ebx, edi
mov edi, dword [esp + 0x78]
nop dword [eax]
mov dword [esp + 0x60], edx
movzx edx, byte [esp + 0x4c]
cmp edx, 8
je 0x58e6e0
mov ecx, 0x10
mov eax, 0x1e
cmp edx, 0x7d
mov edx, dword [esp + 0x74]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x58], edx
jne 0x58e680
mov dword [esp + 0x78], edi
mov edi, ebx
mov dword [esp + 0x6c], esi
xor esi, esi
cmp eax, 0xe
jne 0x58df20
jmp 0x58e65c
mov ebx, 0x10
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov eax, dword [edi]
mov ecx, dword [ebp + 4]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x58e630
jmp 0x58de50
cmp ecx, 0xc
jne 0x58e6a0
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
xor eax, eax
test edx, edx
je 0x58e6a0
mov edx, dword [esp + 0x3c]
jmp 0x58e501
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], esi
mov byte [esp + 0x4c], 0x7d
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
cmp eax, dword [esp + 0x38]
je 0x58e75f
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x54], edx
jmp 0x58df60
mov byte [esp + 0x4c], 7
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x40], eax
mov ecx, dword [eax]
cmp ecx, dword [esp + 0x38]
jne 0x58e76c
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], esi
mov eax, 0xf
mov esi, edx
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], esi
mov edx, dword [esp + 0x64]
je 0x58e790
cmp eax, 0xf
je 0x58df70
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x70], eax
jne 0x58e532
jmp 0x58df70
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x64]
jmp 0x58df70
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x64]
nop dword [eax + eax]
mov edi, ebx
mov eax, 0x10
mov ebx, 6
movzx ecx, byte [esp + 0x44]
cmp ecx, 0xb
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x6c]
je 0x58e360
cmp ebx, 3
jne 0x58e5a0
mov eax, 3
sub eax, ebx
xor eax, ebx
je 0x58e5a0
jmp 0x58f5db
cmp eax, 9
jne 0x58ee09
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x58ee09
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov byte [esp + 0x88], al
jmp 0x58f74a
mov dword [esp + 0x80], ecx
lea eax, [esp + 0x94]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00590910
test eax, eax
jne 0x58ec90
mov ecx, 0xe
mov edx, eax
and edx, 1
xor edx, eax
not edx
test edx, edx
je 0x58ec90
cmp ecx, 0xe
je 0x58e8b8
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x58e8b8
mov dword [esp], ebp
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
call fcn.0061b160
mov ecx, eax
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
je 0x58ec7b
jmp 0x58e817
mov esi, 0x11
mov ebx, 8
mov byte [esp + 0x88], 0x6e
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp], ebp
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], ebp
lea ecx, [esp + 0x8c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x58edb8
cmp ebx, 3
jne 0x58e970
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
je 0x58e970
call fcn.00449410
cmp eax, 0xc
je 0x58f8cb
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x58f8cb
mov byte [esp + 0x7c], 0x52
mov bl, 5
jmp 0x58ebb3
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebp
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 + 0x80]
call fcn.00589f50
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x58eaaf
mov esi, 0x17
movzx eax, byte [esp + 0x88]
xor ebx, ebx
cmp eax, 0x41
jne 0x58eb21
jmp 0x58ea42
mov byte [esp + 0x88], 0x41
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp + 4], ebp
mov dword [esp], str.Failure_in_adding_the_v2c_available_in_license_file__s_n
call fcn.004414c0
mov eax, 3
sub eax, ebx
mov ecx, ebx
xor ecx, eax
setne cl
movzx ecx, cl
cmp ebx, ecx
jb 0x58ea20
jmp 0x58eaaf
mov esi, 0x16
mov byte [esp + 0x88], 0x6e
cmp eax, 0xffffffff
setne al
movzx eax, al
add ebx, eax
mov dword [esp + 4], ebp
mov dword [esp], str.Failure_in_adding_the_v2c_available_in_license_file__s_n
call fcn.004414c0
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne cl
movzx ecx, cl
cmp ebx, ecx
jb 0x58ea60
cmp esi, 7
je 0x58f8cb
xor eax, eax
test al, al
jne 0x58f8cb
mov esi, 0xf
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp], ebp
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], ebp
lea ecx, [esp + 0x8c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00590b10
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x58e970
cmp esi, 0xf
je 0x58ec90
imul esi, esi
and esi, 3
xor ebx, ebx
cmp esi, 2
jne 0x58ea88
jmp 0x58ec90
cmp ebx, 0xc
jne 0x58eb54
mov eax, ebx
not eax
and eax, 1
add eax, ebx
jne 0x58ed75
mov ebx, 3
mov al, byte [esp + 0x7c]
movzx eax, al
cmp eax, 0x3d
je 0x58e937
cmp eax, 0x71
jne 0x58eb90
mov byte [esp + 0x7c], 0x3d
mov bl, 5
call fcn.00449410
cmp eax, 0xc
jne 0x58ebb3
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x58ebb3
jmp 0x58f8cb
call fcn.00449410
cmp eax, 0xc
je 0x58f8cb
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x58f8cb
mov byte [esp + 0x7c], 0x71
mov bl, 5
mov ecx, 0x11
movzx eax, bl
cmp eax, 5
je 0x58e84f
cmp eax, 0x23
jne 0x58ec13
mov dword [esp], ebp
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
call fcn.0061b160
mov ecx, eax
test ecx, ecx
jne 0x58e817
jmp 0x58ec7b
mov esi, 0xd
mov dword [esp], ebp
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
call fcn.0061b160
mov ecx, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x58e817
mov dword [esp + 0x80], ecx
jmp 0x58ed30
mov dword [esp + 0x80], ecx
nop word cs:[eax + eax]
mov eax, dword [esp + 0x94]
test eax, eax
je 0x58ecad
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x58ecad
mov dword [esp], eax
call fcn.00590a80
mov eax, 9
cmp edi, 0x21
je 0x58ece0
mov esi, 0xb
cmp edi, 0x48
jne 0x58ed30
mov esi, 0x16
call fcn.005959e0
test eax, eax
je 0x58edd7
mov eax, 0x19
mov byte [esp + 0x84], 0x54
cmp eax, 9
jne 0x58ed75
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x58ed75
mov ebx, 0xc
mov byte [esp + 0x84], 0x54
call fcn.005959e0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x58eb40
jmp 0x58f8cb
cmp esi, 0xb
jne 0x58ec90
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x58ec90
mov esi, 7
mov byte [esp + 0x84], 0x54
call fcn.005959e0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x58ea9c
mov esi, 0xe
movzx eax, byte [esp + 0x84]
cmp eax, 0x54
je 0x58edd7
mov esi, 5
mov byte [esp + 0x84], 0x54
mov dword [esp + 0xc], 0xe
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00521ce0
cmp esi, 5
jne 0x58ec90
jmp 0x58f8cb
mov dword [esp + 0x70], 0x700002bb
mov eax, dword [esp + 0x70]
jmp 0x58f8cd
cmp esi, 0xe
jne 0x58f8cb
mov dword [esp + 0xc], 0xe
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00521ce0
jmp 0x58f8cb
mov byte [esp + 0x88], 8
lea eax, [ebx + 0x10]
mov dword [esp + 0x80], eax
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x58ee86
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0x84], ecx
jne 0x58fa25
jmp 0x58f720
mov edx, dword [esp + 0x64]
mov eax, edx
jmp 0x58f8cd
mov eax, 1
mov byte [esp + 0x88], 8
lea ecx, [ebx + 0x10]
mov dword [esp + 0x80], ecx
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x58ee9e
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x84], edx
not ecx
test ecx, ecx
mov byte [esp + 0x7c], cl
jne 0x58f720
jmp 0x58f5e2
mov dword [esp + 0x84], ecx
jmp 0x58f720
mov edx, 0x700002bb
mov eax, edx
jmp 0x58f8cd
mov dword [esp + 0x84], edx
mov byte [esp + 0x7c], cl
jmp 0x58f5e2
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov eax, 8
mov dword [esp + 0x70], 0x7000002b
mov edx, dword [esp + 0x5c]
cmp eax, 8
mov ecx, edx
je 0x58f56f
nop word cs:[eax + eax]
mov dword [esp + 0x38], ecx
mov esi, 9
mov dword [esp + 0x3c], 0xd
mov byte [esp + 0x54], 0x63
mov byte [esp + 0x60], 0x5e
mov edx, ecx
mov eax, edi
mov edi, dword [edx + 0xc]
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x40]
cmp dword [edi], ecx
mov edi, eax
mov dword [esp + 0x5c], edx
je 0x58f199
jmp 0x58f3ea
mov esi, 0xe
cmp ecx, 0x70
je 0x58f038
cmp dword [esp + 0x50], 0
jne 0x58ef5f
mov eax, 0xa
mov byte [esp + 0x54], 0x70
mov dword [esp + 0x70], 0x7000002b
jmp 0x58f1e2
mov dword [esp + 0x70], 0x7000002b
cmp dword [esp + 0x50], 0
je 0x58f56f
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
mov ecx, eax
mov dword [esp + 0x70], 0x70000003
test ecx, ecx
je 0x58f56f
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x10]
mov dword [ecx + 8], eax
mov dword [esp], eax
mov dword [esp + 4], 1
mov esi, ecx
call fcn.00493840
mov ecx, esi
mov dword [ecx + 4], eax
test eax, eax
je 0x58f578
lea eax, [edi + 0x10]
mov dword [esp + 0x44], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x4c], eax
mov esi, 0xd
mov eax, ecx
add eax, 0xc
mov dword [esp + 8], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4d4]
mov dword [esp], eax
call fcn.007c5200
mov dword [esp + 0x70], 0x70000003
jmp 0x58f2b4
mov esi, 0x12
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
add edi, 1
jb 0x58f000
mov edi, dword [esp + 0x4d8]
cmp esi, 0xe
je 0x58ef4c
jmp 0x58f4c0
mov byte [esp + 0x6c], 0xe
mov dl, 0x6a
lea ebp, [edi + 0x10]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x74], ecx
mov eax, dword [edi + 0x14]
mov dword [esp + 0x78], eax
lea ebx, [edi + 0x14]
lea eax, [eax + ecx]
mov ecx, dword [esp + 0x88]
cmp eax, dword [ecx]
jbe 0x58f349
mov byte [esp + 0x64], dl
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x80], eax
mov dword [esp + 0x70], 0x70000003
test eax, eax
je 0x58f56f
mov eax, dword [esp + 0x84]
lea eax, [eax + 4]
mov dword [esp + 0x7c], eax
mov al, 0x3d
movzx eax, al
cmp eax, 9
je 0x58f21f
cmp eax, 0x34
je 0x58f231
mov edi, 0xffffffff
cmp eax, 0x4e
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
je 0x58f17d
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov dword [eax], edx
mov eax, dword [ebx]
add eax, dword [ebp]
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx]
sub eax, ecx
add edx, ecx
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [ebp]
mov dword [esp + 0x74], eax
mov eax, dword [ebx]
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], 0x70000003
mov edi, dword [esp + 0x4d8]
jmp 0x58f345
mov esi, 0x18
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov dword [eax], edx
mov eax, dword [ebx]
add eax, dword [ebp]
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx]
sub eax, ecx
add ecx, edx
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov ecx, dword [ebp]
mov eax, dword [ebx]
add edi, 1
jb 0x58f140
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], 0x70000003
mov edi, dword [esp + 0x4d8]
cmp esi, 9
mov dl, byte [esp + 0x64]
mov esi, dword [esp + 0x4c]
mov cl, byte [esp + 0x60]
jne 0x58f349
mov eax, 0x12
movzx ecx, cl
cmp ecx, 9
je 0x58f1f0
cmp ecx, 0x5e
jne 0x58f1fd
mov eax, 0xb
mov byte [esp + 0x60], 0x19
mov byte [esp + 0x68], 0x2a
mov ecx, dword [esp + 0x58]
test ecx, ecx
mov dword [esp + 0x84], ecx
je 0x58f2d0
cmp eax, 0xa
jne 0x58f3b1
jmp 0x58f56f
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
jmp 0x58f37e
mov byte [esp + 0x60], 0x5e
mov byte [esp + 0x68], 0x2a
mov eax, dword [esp + 0x58]
test eax, eax
mov dword [esp + 0x84], eax
jne 0x58f3b1
jmp 0x58f2d0
mov dword [esp + 0x70], 0x70000003
mov eax, 0xb
jmp 0x58f2e3
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov dword [eax], edx
mov eax, dword [ebx]
add eax, dword [ebp]
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx]
sub eax, ecx
add edx, ecx
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [ebp]
mov dword [esp + 0x74], eax
mov eax, dword [ebx]
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], 0x70000003
jmp 0x58f345
cmp dword [esp + 0x50], 0
je 0x58eeae
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
jmp 0x58ef5f
mov esi, 0xc
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x58f2d0
cmp esi, 0xc
mov ecx, dword [esp + 0x5c]
je 0x58eee0
jmp 0x58f541
mov eax, 1
movzx ecx, byte [esp + 0x54]
cmp ecx, 4
jne 0x58ef20
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov esi, 0xffffffff
cmp eax, 1
je 0x58f27e
jmp 0x58f338
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov dword [eax], edx
mov eax, dword [ebx]
add eax, dword [ebp]
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx]
sub eax, ecx
add ecx, edx
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov edx, dword [ebp]
mov ecx, dword [ebx]
add esi, 1
jb 0x58f300
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov dl, byte [esp + 0x64]
movzx eax, dl
cmp eax, 0x6a
jne 0x58f4d8
mov eax, 6
mov byte [esp + 0x64], 0x6a
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
lea ecx, [ecx + edx]
mov edx, dword [esp + 0x88]
mov dword [edx], ecx
mov edx, ebp
mov esi, ebx
mov ecx, dword [esp + 0x84]
cmp eax, 6
je 0x58f500
mov dword [esp + 0x4c], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov eax, 3
mov byte [esp + 0x60], 9
mov byte [esp + 0x68], 0x2a
mov ecx, dword [esp + 0x58]
test ecx, ecx
mov dword [esp + 0x84], ecx
je 0x58f400
mov eax, 4
movzx ecx, byte [esp + 0x68]
cmp ecx, 0x6e
jne 0x58f400
mov dword [esp + 0x3c], 0xc
mov byte [esp + 0x68], 0x6e
mov byte [esp + 0x6c], 0x79
mov cl, 0x43
mov edx, dword [esp + 0x84]
lea edx, [edx + 8]
mov dword [esp + 0x88], edx
cmp dword [edi], 2
je 0x58f42f
cmp dword [esp + 0x3c], 0xc
jne 0x58f2a0
jmp 0x58f4c0
cmp eax, 3
je 0x58f2d0
mov byte [esp + 0x68], 0x2a
mov byte [esp + 0x6c], 0x79
mov cl, 0x43
mov eax, dword [esp + 0x84]
lea eax, [eax + 8]
mov dword [esp + 0x88], eax
cmp dword [edi], 2
jne 0x58f4c0
mov edi, 0xffffffff
movzx eax, cl
cmp eax, 0x1c
je 0x58f02c
cmp eax, 0x4c
je 0x58f4a7
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov edi, dword [esp + 0x4d8]
jmp 0x58f4c0
mov eax, dword [esp + 0x88]
mov eax, dword [eax]
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
add edi, 1
jb 0x58f480
mov edi, dword [esp + 0x4d8]
nop word cs:[eax + eax]
movzx eax, byte [esp + 0x6c]
cmp eax, 0x79
je 0x58f050
mov byte [esp + 0x6c], 0x79
jmp 0x58f055
cmp eax, 0x12
jne 0x58f50e
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x74]
mov eax, 0xffffffff
jmp 0x58f4f9
mov ecx, dword [esp + 0x88]
mov dword [ecx], edx
add eax, 1
jb 0x58f4f0
jmp 0x58f52e
mov dword [esp + 0x4c], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
jmp 0x58f541
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x74]
mov eax, 0xffffffff
jmp 0x58f529
mov ecx, dword [esp + 0x88]
mov dword [ecx], edx
add eax, 1
jb 0x58f520
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [edi + 0x18]
mov edx, dword [esp + 0x48]
mov edx, dword [edx + 4]
mov esi, dword [esp + 0x44]
add edx, dword [esi]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.007c51d0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x70]
jmp 0x58f8cd
mov edi, ecx
mov esi, 0xffffffff
jmp 0x58f598
mov dword [esp], edi
call fcn.004936c0
add esi, 1
jb 0x58f590
jmp 0x58f56f
mov edx, dword [esp + 0x64]
jmp 0x58f5c7
mov edx, dword [esp + 0x64]
jmp 0x58f5c7
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.004936c0
mov edx, 0x70000003
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x58f5b0
mov eax, edx
jmp 0x58f8cd
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
je 0x58fa25
mov edi, 0x17
mov eax, dword [esp + 0x4b0]
lea ecx, [esp + 0x4ac]
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 edx, cl
mov ecx, dword [esp + 0x4ac]
cmp eax, edx
jne 0x58f648
mov al, 0x21
test ecx, ecx
je 0x58f648
mov edi, 0xa
movzx eax, al
cmp eax, 0xf
jne 0x58f697
xor eax, eax
cmp edi, 0xa
je 0x58f67f
imul edi, edi
and edi, 3
cmp edi, 2
jne 0x58f92b
jmp 0x58f67f
mov edi, 0xf
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
add eax, edx
lea ebp, [esp + 0x4a8]
mov esi, ecx
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x58f660
jmp 0x58f93f
xor eax, eax
lea edi, [esp + 0x4a8]
mov dl, 1
jmp 0x58f6c2
mov esi, eax
imul esi, esi
and esi, 3
cmp esi, 2
adc eax, 0
mov esi, ecx
mov ebp, edi
test eax, eax
je 0x58f6b0
test dl, dl
je 0x58f6b0
jmp 0x58f99b
mov byte [esp + 0x88], 8
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov ebp, dword [esp + 0x84]
mov dword [esp], ebp
mov dword [esp + 4], 0x4ddaa0
call fcn.007c56d0
mov dword [esp], ebp
call fcn.004936c0
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp edi, eax
jb 0x58f6d0
mov ebp, dword [esp + 0x7c]
mov eax, 0x16
mov ecx, dword [esp + 0x80]
mov dword [ecx], 0
cmp eax, 8
jne 0x58f74a
mov dword [ebx], 3
mov dword [esp], ebx
call fcn.00595550
jmp 0x58f8cb
mov eax, dword [esp + 0x4c8]
test al, 2
je 0x58f8cb
mov eax, dword [esp + 0x4d0]
test eax, eax
je 0x58f8cb
mov cl, 7
movzx ecx, cl
cmp ecx, 0x47
je 0x58f7be
cmp ecx, 0x51
jne 0x58f80f
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x78], 0x2a
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x4a0], ecx
mov dword [esp + 0x4a4], eax
lea ebx, [esp + 0x498]
lea eax, [esp + 0x4b0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00594ba0
test eax, eax
je 0x58f85c
jmp 0x58f951
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x78], 0x2a
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x4a0], ecx
mov dword [esp + 0x4a4], eax
lea ebx, [esp + 0x498]
lea eax, [esp + 0x4b0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00594ba0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x58f951
jmp 0x58f85c
mov edi, 0xb
mov byte [esp + 0x7c], 0x1f
mov byte [esp + 0x78], 0x2a
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x4a0], ecx
mov dword [esp + 0x4a4], eax
lea ebx, [esp + 0x498]
lea eax, [esp + 0x4b0]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00594ba0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x58f8b4
mov eax, 0xa
movzx ecx, byte [esp + 0x78]
cmp ecx, 0x2a
je 0x58f5e2
mov edi, 0x18
mov eax, dword [esp + 0x4b0]
lea ecx, [esp + 0x4ac]
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 0x58f8b4
mov al, 0x21
mov ecx, dword [esp + 0x4ac]
test ecx, ecx
jne 0x58f63b
cmp edi, 0xb
jne 0x58f92b
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
jne 0x58f951
jmp 0x58f92b
xor eax, eax
add esp, 0x4b4
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebx], 4
mov eax, dword [esi]
mov dword [ebp], eax
mov dword [esp], ebx
call fcn.00595750
mov eax, dword [esp + 0x4b0]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx edx, cl
mov esi, dword [esp + 0x4ac]
test esi, esi
setne cl
cmp eax, edx
jne 0x58f92b
test cl, cl
jne 0x58f8e0
mov edi, 5
mov eax, dword [esp + 0x4b0]
mov dword [esp], eax
call fcn.00595380
mov eax, edi
and eax, 1
xor eax, edi
not eax
cmp edi, 5
jne 0x58f99b
test eax, eax
je 0x58f99b
mov eax, 8
movzx ecx, byte [esp + 0x7c]
cmp ecx, 0x74
jne 0x58f732
mov dword [esp + 0x7c], ebp
xor ebp, ebp
jmp 0x58f991
mov edi, 0x19
mov eax, ebp
imul eax, eax
and eax, 3
cmp eax, 2
adc ebp, 0
mov dword [ebx], 3
mov dword [esp], ebx
call fcn.00595550
test ebp, ebp
je 0x58f970
mov ebp, dword [esp + 0x7c]
jmp 0x58f9fc
lea edi, [esp + 0x4ac]
jmp 0x58f8e0
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov byte [esp + 0x88], al
je 0x58f708
mov byte [esp + 0x88], 8
mov eax, dword [esp + 0x4cc]
mov ecx, eax
lea eax, [ecx + 0x10]
mov dword [esp + 0x80], eax
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x58fa1a
mov edi, 0xf
mov eax, ecx
mov dword [esp + 0x84], ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov ebp, dword [esp + 0x7c]
jae 0x58fa25
cmp edi, 0xf
jne 0x58f8cb
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
jne 0x58f720
jmp 0x58f8cb
mov dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x7c]
mov eax, 0x1f
movzx ecx, byte [esp + 0x88]
cmp ecx, 0x49
jne 0x58fa63
mov byte [esp + 0x88], 0x49
mov edi, dword [esp + 0x84]
mov dword [esp], edi
mov dword [esp + 4], 0x4ddaa0
call fcn.007c56d0
mov dword [esp], edi
call fcn.004936c0
jmp 0x58f720
mov dword [esp + 0x7c], ebp
xor edi, edi
cmp eax, 0x10
je 0x58f9a7
mov byte [esp + 0x88], al
jmp 0x58f708