Function at 0x525ed0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov ebx, dword [ebp + 8]
mov eax, dword [0x7aa024]
xor eax, ebp
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x525f7a
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
test edi, edi
je 0x525f82
cmp ecx, 0xa
ja case.default.0x525f87
mov eax, dword [ebp + 0x14]
mov edx, eax
shr dl, 7
jmp dword [ecx*4 + 0x7556e0]
mov dword [ebp - 0x18], 0xffffffff
mov al, byte [edi]
mov ecx, eax
and cl, 0xdf
add cl, 0xbf
cmp cl, 0x19
ja 0x525f34
cmp byte [edi + 1], 0x3a
je 0x5264ec
test al, al
je 0x5264ec
xor esi, esi
movzx ebx, al
push ebx
call fcn.004faf00
add esp, 4
test eax, eax
jne 0x525f63
add ebx, 0xffffffd5
cmp ebx, 3
ja 0x5264e8
cmp ebx, 1
je 0x5264e8
cmp esi, 0x27
je 0x52646e
mov al, byte [edi + esi + 1]
inc esi
test al, al
jne 0x525f3e
jmp 0x526473
xor esi, esi
inc esi
jmp 0x526f45
cmp ecx, 0xa
ja case.default.0x525f87
jmp dword [ecx*4 + 0x75570c]
add ebx, 4
jmp case.0x525f87.1
mov esi, 9
jmp 0x526f45
push edi
call fcn.0066b230
add esp, 4
mov esi, 0x1b
cmp eax, 0x28
ja 0x526f45
mov eax, dword [ebp + 0x14]
test al, 8
jne 0x525fcf
push edi
call fcn.00520de0
add esp, 4
test eax, eax
je 0x5264de
mov al, 1
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], ebx
jmp 0x52610c
mov dword [ebp - 0x1c], edx
lea eax, [ebx + 4]
jmp 0x5260ef
mov dword [ebp - 0x1c], edx
lea eax, [ebx + 8]
jmp 0x5260ef
mov dword [ebp - 0x1c], edx
lea eax, [ebx + 0xc]
jmp 0x5260ef
mov dword [ebp - 0x1c], edx
push 0x7555d0
push edi
call fcn.0066b0a0
add esp, 8
mov ebx, eax
push edi
call fcn.0066b230
add esp, 4
mov esi, 0x15
cmp eax, ebx
mov ebx, dword [ebp + 8]
jne 0x526f45
lea eax, [ebx + 0x10]
mov dword [ebp - 0x28], eax
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x14]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov dword [ebx + 0x14], 0
jmp 0x5260f2
lea eax, [ebp - 0x14]
mov dword [eax], 0xffffffff
push 0xa
push eax
push edi
call fcn.00664049
add esp, 0xc
mov edx, 0xffff0000
lea ecx, [eax + edx]
cmp ecx, edx
ja 0x526443
mov esi, 4
jmp 0x526f45
mov dword [ebp - 0x1c], edx
lea eax, [ebx + 0x1c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
jmp 0x526105
mov eax, dword [ebp + 0x14]
mov al, ah
and al, 1
mov dword [ebp - 0x30], eax
lea eax, [ebx + 0x20]
mov dword [ebp - 0x28], eax
mov al, 1
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], edx
mov eax, edx
mov dword [ebp - 0x20], eax
jmp 0x52610c
mov dword [ebp - 0x1c], edx
lea eax, [ebx + 0x24]
jmp 0x5260ef
mov dword [ebp - 0x1c], edx
lea eax, [ebx + 0x14]
mov dword [ebp - 0x28], eax
mov al, 1
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x30], 0
push edi
call fcn.0066b230
add esp, 4
mov esi, 3
cmp eax, 0x7a1200
ja 0x526f45
cmp byte [ebp - 0x1c], 0
je 0x52633a
mov ecx, dword [fcn.005f2b30]
lea esi, [eax + eax*2]
inc esi
call dword [section..00cfg]
push esi
call ecx
add esp, 4
test eax, eax
je 0x526650
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x24]
not cl
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x34], eax
mov ebx, eax
movzx eax, byte [edi]
cmp eax, 0x20
je 0x526174
test eax, eax
jne 0x52617f
jmp 0x526203
cmp byte [ebp - 0x20], 0
je 0x52617f
mov byte [ebx], 0x2b
jmp 0x5261de
movzx eax, al
push eax
call fcn.004fd620
add esp, 4
mov cl, byte [edi]
test al, al
je 0x5261ab
mov eax, dword [ebp - 0x1c]
test al, 1
movzx eax, al
mov edx, 0
cmovne eax, edx
cmp cl, 0x3d
jne 0x5261dc
mov dword [ebp - 0x1c], eax
jmp 0x5261dc
cmp cl, 0x2f
sete al
test byte [ebp - 0x24], al
jne 0x5261da
cmp cl, 0x3d
jne 0x5261e8
mov eax, dword [ebp - 0x1c]
and al, 1
je 0x5261e8
mov ecx, dword [ebp - 0x1c]
test cl, 1
movzx ecx, cl
mov eax, 0
cmovne ecx, eax
mov dword [ebp - 0x1c], ecx
mov cl, 0x3d
jmp 0x5261dc
mov cl, 0x2f
mov byte [ebx], cl
mov eax, esi
add ebx, eax
inc edi
jmp 0x526163
movzx eax, cl
push eax
push str.___02x
push 4
push ebx
call fcn.0050d0c0
add esp, 0x10
mov eax, 3
jmp 0x5261e0
mov byte [ebx], 0
mov ebx, dword [ebp + 8]
cmp byte [ebp - 0x30], 0
je 0x5262c8
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x5262c8
push esi
call fcn.0066b230
add esp, 4
test eax, eax
je 0x5262c8
mov edi, eax
mov al, byte [eax + esi - 1]
xor ebx, ebx
mov byte [ebp - 0x1c], al
cmp al, 0x26
setne bl
push dword [ebp - 0x34]
call fcn.0066b230
add esp, 4
mov ecx, dword [fcn.005f2b30]
add ebx, edi
lea esi, [eax + ebx]
inc esi
call dword [section..00cfg]
push esi
call ecx
add esp, 4
test eax, eax
je 0x5264c5
mov esi, eax
mov eax, dword [ebp + 8]
push dword [eax + 0x20]
push esi
call fcn.0066af10
add esp, 8
cmp byte [ebp - 0x1c], 0x26
je 0x526285
mov byte [esi + edi], 0x26
mov eax, esi
add eax, ebx
mov ebx, esi
mov esi, dword [ebp - 0x34]
push esi
push eax
call fcn.0066af10
add esp, 8
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebp - 0x28]
mov esi, dword [edi]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov dword [edi], ebx
jmp case.0x525f87.0
cmp dword [ebp + 0xc], 5
jne 0x526309
bt dword [ebp + 0x14], 0xa
jae 0x5262dd
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0
je 0x526309
mov ecx, ebx
mov edx, dword [ebp - 0x34]
call fcn.00528000
test eax, eax
je 0x526309
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push dword [ebp - 0x34]
call ecx
add esp, 4
mov esi, 0x15
jmp 0x526f45
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebp - 0x28]
mov esi, dword [edi]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [edi], eax
xor esi, esi
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x526f45
mov dword [ebx + 0x30], eax
jmp 0x526f45
mov ecx, dword [fcn.00663270]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
test eax, eax
je 0x526650
xor esi, esi
inc esi
mov dword [ebp - 0x34], eax
mov edi, eax
movzx eax, byte [edi]
cmp eax, 0x25
je 0x52636f
mov ecx, esi
test eax, eax
jne 0x5263de
jmp 0x526209
movzx eax, byte [edi + 1]
push eax
call fcn.004faf20
add esp, 4
mov ecx, esi
test eax, eax
je 0x5263de
movzx eax, byte [edi + 2]
push eax
call fcn.004faf20
add esp, 4
mov ecx, esi
test eax, eax
je 0x5263de
movzx eax, byte [edi + 1]
push eax
call fcn.004faf80
add esp, 4
test eax, eax
jne 0x5263b9
movzx eax, byte [edi + 2]
push eax
call fcn.004faf80
add esp, 4
mov ecx, esi
test eax, eax
je 0x5263de
movzx eax, byte [edi + 1]
push eax
call fcn.0066540e
add esp, 4
mov byte [edi + 1], al
movzx eax, byte [edi + 2]
push eax
call fcn.0066540e
add esp, 4
mov byte [edi + 2], al
mov ecx, 3
add edi, ecx
jmp 0x52635c
add ebx, 8
jmp case.0x525f87.1
add ebx, 0xc
jmp case.0x525f87.1
add ebx, 0x10
jmp case.0x525f87.1
mov dword [ebx + 0x30], 0
add ebx, 0x18
jmp case.0x525f87.1
add ebx, 0x1c
jmp case.0x525f87.1
add ebx, 0x20
jmp case.0x525f87.1
add ebx, 0x24
jmp case.0x525f87.1
add ebx, 0x14
xor esi, esi
test ebx, ebx
je 0x526f45
mov edi, dword [ebx]
test edi, edi
je 0x526f45
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov dword [ebx], 0
jmp 0x526f45
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0
mov esi, 4
jne 0x526f45
lea eax, [ebx + 0x18]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], 0
mov al, 1
mov dword [ebp - 0x24], eax
jmp 0x5260fe
mov esi, 0x28
cmp byte [edi + esi], 0x3a
jne 0x5264ec
cmp byte [esi + edi + 1], 0x2f
jne 0x5264ec
mov ecx, dword [fcn.005f2c20]
call dword [section..00cfg]
push 1
push 0x34
call ecx
add esp, 8
test eax, eax
je 0x526650
mov ebx, eax
mov ecx, edi
mov edx, eax
push dword [ebp + 0x14]
call fcn.00526f70
add esp, 4
mov ecx, dword [fcn.005f2b80]
test eax, eax
je 0x52690f
mov esi, eax
mov edi, dword [ebx]
jmp 0x52654b
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push dword [ebp - 0x34]
call ecx
add esp, 4
jmp 0x526650
mov esi, 5
jmp 0x526f45
test esi, esi
jne 0x526473
lea eax, [ebp - 0x18]
push dword [ebp + 0x14]
push eax
push 0
mov ebx, dword [ebp + 8]
push ebx
call fcn.005258d0
add esp, 0x10
test eax, eax
je 0x52665a
mov ecx, dword [fcn.005f2c20]
call dword [section..00cfg]
push 1
push 0x34
call ecx
add esp, 8
test eax, eax
je 0x526650
mov ecx, edi
mov edi, eax
mov edx, eax
push dword [ebp + 0x14]
call fcn.00526f70
add esp, 4
mov ecx, dword [fcn.005f2b80]
test eax, eax
je 0x526717
mov esi, eax
mov ebx, edi
mov edi, dword [edi]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 4]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0xc]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x10]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x14]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x18]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x1c]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x20]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x24]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x28]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov edi, dword [ebx + 0x2c]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push ebx
jmp 0x526e13
mov esi, 7
jmp 0x526f45
mov esi, dword [ebp - 0x18]
mov ecx, dword [fcn.00663270]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
test eax, eax
je 0x52683a
push 0x755658
push eax
mov dword [ebp - 0x30], eax
call fcn.006509d0
add esp, 8
lea ecx, [eax + 2]
test eax, eax
cmove ecx, dword [ebp - 0x30]
mov bl, byte [edi]
cmp bl, 0x2f
jne 0x526841
mov dword [ebp - 0x28], ecx
cmp byte [edi + 1], 0x2f
jne 0x5268d3
mov ebx, dword [ebp - 0x28]
mov byte [ebx], 0
add edi, 2
push 0x755658
push edi
call fcn.006509d0
add esp, 8
lea esi, [eax + 2]
test eax, eax
cmove esi, edi
push 0x3f
push esi
call fcn.00650760
add esp, 8
mov dword [ebp - 0x20], eax
push 0x2f
push esi
call fcn.00650760
add esp, 8
mov esi, eax
test eax, eax
jne 0x5266f4
push edi
call fcn.0066b230
add esp, 4
mov esi, eax
add esi, edi
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x526706
push edi
call fcn.0066b230
add esp, 4
add eax, edi
cmp esi, eax
cmovb eax, esi
mov dword [ebp - 0x2c], 0
jmp 0x526a80
mov esi, dword [ebx]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 4]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 8]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0xc]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x10]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x14]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x18]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x1c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x20]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x24]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x28]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x2c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov eax, dword [edi + 0x30]
mov dword [ebx + 0x30], eax
movups xmm0, xmmword [edi + 0x20]
movups xmmword [ebx + 0x20], xmm0
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0x10]
movups xmmword [ebx + 0x10], xmm1
movups xmmword [ebx], xmm0
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push edi
jmp 0x526f3e
xor edi, edi
jmp 0x526c9b
push 0x3f
mov esi, ecx
push ecx
call fcn.00650760
add esp, 8
test eax, eax
je 0x526857
mov byte [eax], 0
mov bl, byte [edi]
mov bh, 0x3f
cmp bl, 0x3f
je 0x526874
push 0x2f
push esi
call fcn.00650890
add esp, 8
mov bh, bl
test eax, eax
je 0x526874
mov byte [eax], 0
mov bh, byte [edi]
push 0x2f
push esi
call fcn.00650760
add esp, 8
lea esi, [eax + 1]
test eax, eax
mov ecx, esi
cmove ecx, eax
cmp bh, 0x2e
mov dword [ebp - 0x1c], esi
jne 0x526a37
xor edx, edx
cmp byte [edi + 1], 0x2f
sete dl
lea edx, [edi + edx*2]
cmp byte [edx], 0x2e
jne 0x526a35
xor esi, esi
mov ebx, ecx
cmp byte [edx + 1], 0x2e
jne 0x526f69
cmp byte [edx + 2], 0x2f
jne 0x526f69
inc esi
lea edi, [edx + 3]
cmp byte [edx + 3], 0x2e
mov edx, edi
je 0x5268ae
jmp 0x526a3b
push 0x2f
mov esi, dword [ebp - 0x28]
push esi
call fcn.00650760
add esp, 8
mov ebx, eax
push 0x3f
push esi
call fcn.00650760
add esp, 8
test ebx, ebx
je 0x526a6f
cmp eax, ebx
mov ecx, ebx
cmovb ecx, eax
test eax, eax
cmove ecx, ebx
mov byte [ecx], 0
mov al, 1
mov dword [ebp - 0x2c], eax
jmp 0x526a7b
mov edi, dword [ebp + 8]
mov esi, dword [edi]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 4]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 8]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0xc]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x10]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x14]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x18]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x1c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x20]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x24]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x28]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [edi + 0x2c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov eax, dword [ebx + 0x30]
mov dword [edi + 0x30], eax
movups xmm0, xmmword [ebx + 0x20]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push ebx
jmp 0x526f3e
mov edi, edx
xor esi, esi
mov ebx, ecx
mov cl, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x526a5f
test esi, esi
je 0x526a63
push 0x2f
push ebx
call fcn.00650890
add esp, 8
test eax, eax
je 0x526a68
mov byte [eax], 0
dec esi
jne 0x526a48
jmp 0x526a6b
xor ebx, ebx
jmp 0x526a6b
mov ebx, dword [ebp - 0x1c]
jmp 0x526a6b
mov byte [ebx], 0
mov eax, edi
jmp 0x526a80
mov cl, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x526a7b
mov byte [eax], 0
mov eax, edi
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ebx
mov cl, byte [edi]
xor edx, edx
test cl, cl
je 0x526b04
mov bl, 1
mov dword [ebp - 0x24], ebx
mov ebx, edi
mov dword [ebp - 0x20], eax
cmp ebx, eax
jae 0x526a9c
inc edx
jmp 0x526ae4
movzx esi, cl
cmp cl, 0x3f
je 0x526ab4
cmp esi, 0x20
jne 0x526ac0
test byte [ebp - 0x24], 1
je 0x526a99
add edx, 3
jmp 0x526ae4
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], 0
jmp 0x526ac3
mov dword [ebp - 0x1c], edx
push esi
call fcn.004fafa0
add esp, 4
test eax, eax
jne 0x526add
push esi
call fcn.004faec0
add esp, 4
test eax, eax
je 0x526aee
mov edx, dword [ebp - 0x1c]
inc edx
mov eax, dword [ebp - 0x20]
mov cl, byte [ebx + 1]
inc ebx
test cl, cl
jne 0x526a95
jmp 0x526b04
push esi
call fcn.004faf40
add esp, 4
mov edx, dword [ebp - 0x1c]
lea ecx, [edx + 2]
test eax, eax
cmove edx, ecx
jmp 0x526ae0
mov esi, dword [ebp - 0x30]
push esi
mov ebx, edx
call fcn.0066b230
add esp, 4
mov ecx, dword [fcn.005f2b30]
mov dword [ebp - 0x20], eax
add ebx, eax
add ebx, 2
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
mov ebx, dword [ebp + 8]
je 0x526c86
push dword [ebp - 0x20]
push esi
push dword [ebp - 0x24]
call fcn.00650080
add esp, 0xc
mov al, byte [edi]
cmp al, 0x2f
je 0x526b73
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x526f59
cmp byte [ecx], 0
mov ecx, dword [ebp - 0x20]
je 0x526b73
cmp al, 0x3f
je 0x526b73
mov eax, dword [ebp - 0x24]
mov byte [eax + ecx], 0x2f
mov eax, ecx
inc eax
mov dword [ebp - 0x20], eax
mov eax, edi
cmp byte [ebp - 0x2c], 0
jne 0x526bd4
push 0x755658
push edi
call fcn.006509d0
add esp, 8
lea esi, [eax + 2]
test eax, eax
cmove esi, edi
push 0x3f
push esi
call fcn.00650760
add esp, 8
mov dword [ebp - 0x1c], eax
push 0x2f
push esi
call fcn.00650760
add esp, 8
mov esi, eax
test eax, eax
jne 0x526bbd
push edi
call fcn.0066b230
add esp, 4
mov esi, eax
add esi, edi
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x526bcf
push edi
call fcn.0066b230
add esp, 4
add eax, edi
cmp esi, eax
cmovb eax, esi
mov esi, dword [ebp - 0x24]
add esi, dword [ebp - 0x20]
mov cl, byte [edi]
test cl, cl
je 0x526c80
mov dl, 1
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
cmp edi, eax
jae 0x526bf5
mov byte [esi], cl
inc esi
jmp 0x526c4b
movzx ebx, cl
cmp cl, 0x3f
je 0x526c0e
cmp ebx, 0x20
jne 0x526c15
test byte [ebp - 0x20], 1
jne 0x526c3c
mov byte [esi], 0x2b
inc esi
jmp 0x526c48
mov dword [ebp - 0x20], 0
push ebx
call fcn.004fafa0
add esp, 4
test eax, eax
jne 0x526c2f
push ebx
call fcn.004faec0
add esp, 4
test eax, eax
je 0x526c55
mov cl, byte [edi]
mov ebx, dword [ebp + 8]
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x1c]
jmp 0x526c4b
mov word [esi], 0x3225
mov byte [esi + 2], 0x30
add esi, 3
mov ebx, dword [ebp + 8]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x526bec
jmp 0x526c80
push ebx
call fcn.004faf40
add esp, 4
mov cl, byte [edi]
test eax, eax
jne 0x526c31
movzx eax, cl
push eax
push str.___02x
push 4
push esi
call fcn.0050d0c0
add esp, 0x10
add esi, 3
mov ebx, dword [ebp + 8]
jmp 0x526c37
mov byte [esi], 0
mov esi, dword [ebp - 0x30]
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov edi, dword [ebp - 0x24]
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebp - 0x18]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov esi, 7
test edi, edi
je 0x526f45
mov ecx, dword [fcn.005f2c20]
call dword [section..00cfg]
push 1
push 0x34
call ecx
add esp, 8
test eax, eax
je 0x526e06
mov ecx, edi
mov dword [ebp - 0x1c], eax
mov edx, eax
push dword [ebp + 0x14]
call fcn.00526f70
add esp, 4
mov esi, eax
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
test esi, esi
je 0x526e1d
mov edi, dword [ebp - 0x1c]
mov ebx, dword [edi]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 4]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 8]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0xc]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x10]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x14]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x18]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x20]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x24]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x28]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov ebx, dword [edi + 0x2c]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x526f45
mov esi, dword [ebx]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 4]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 8]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0xc]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x10]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x14]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x18]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x1c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x20]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x24]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x28]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [fcn.005f2b80]
mov esi, dword [ebx + 0x2c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x30]
mov dword [ebx + 0x30], eax
movups xmm0, xmmword [esi + 0x20]
movups xmmword [ebx + 0x20], xmm0
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmmword [ebx + 0x10], xmm1
movups xmmword [ebx], xmm0
mov ecx, dword [fcn.005f2b80]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
xor esi, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0064d372
mov eax, esi
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
cmp al, 0x3f
mov ecx, dword [ebp - 0x20]
jne 0x526b66
jmp 0x526b73
mov edi, edx
jmp 0x526a3b