Function at 0x4b3fc0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x574050
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x5d72e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x4b4024
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4b4024
mov dword [ebp - 0x18], esi
jmp 0x4b4004
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
cmp byte [ebx], 0
je 0x4b4024
lea esp, [esp]
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3c
je 0x4b4038
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b4016
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3c
jne 0x4b4004
add ebx, 1
jmp 0x4b404d
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov al, byte [ebx]
cmp al, 0x3f
mov byte [ebp - 0x11], al
jne 0x4b41a8
mov al, byte [ebx + 1]
add ebx, 1
mov byte [ebp + 8], al
movsx eax, al
push eax
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b408e
mov al, byte [ebp + 8]
cmp al, 0x5f
je 0x4b408e
cmp al, 0x3a
je 0x4b408e
cmp al, 0x2d
je 0x4b408e
cmp al, 0x2e
je 0x4b408e
test al, al
jge 0x4b416b
test byte [ebp + 0x14], 2
je 0x4b416b
mov al, byte [ebx]
test al, al
mov ecx, ebx
je 0x4b4024
cmp al, 0x3f
je 0x4b40c2
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b40a0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
xor edi, edi
cmp esi, edi
mov dword [ebp + 8], ecx
jne 0x4b40db
mov ebx, ecx
jmp 0x4b4cab
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x20], eax
jne 0x4b4103
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esi + 0x28]
add eax, ebx
add eax, eax
add eax, eax
push eax
push ecx
call fcn.0053475d
add esp, 8
cmp eax, edi
je 0x4b4103
add dword [esi + 0x24], ebx
mov dword [esi + 0x28], eax
push 0x38
call fcn.00532491
mov ebx, eax
add esp, 4
cmp ebx, edi
je 0x4b4151
push 4
mov dword [ebx + 0x2c], edi
mov dword [ebx + 4], edi
mov dword [ebx + 0x30], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0x10], 6
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x14], edi
mov byte [ebx + 0x34], 1
mov byte [ebx + 0xc], 1
call fcn.00532491
xor edx, edx
add esp, 4
cmp eax, edi
setne dl
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x28], edi
mov dword [ebx + 0x24], edi
mov dword [ebx + 0x18], edx
mov dword [ebx], esi
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x28]
mov dword [ecx + eax*4], ebx
add dword [esi + 0x20], 1
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 8]
jmp 0x4b4cae
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3e
je 0x4b4197
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b4175
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
add ebx, 1
jmp 0x4b4004
cmp al, 0x21
jne 0x4b4bde
mov al, byte [ebx + 1]
add ebx, 1
cmp al, 0x2d
mov byte [ebp - 0x11], al
jne 0x4b433a
add ebx, 1
test byte [ebp + 0x14], 8
je 0x4b42e4
cmp byte [ebx], al
jne 0x4b42e4
xor edi, edi
add ebx, 1
cmp esi, edi
jne 0x4b41e3
xor esi, esi
jmp 0x4b4259
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x20], eax
jne 0x4b420d
mov edi, dword [ebp + 0x10]
mov edx, dword [esi + 0x28]
add eax, edi
add eax, eax
add eax, eax
push eax
push edx
call fcn.0053475d
add esp, 8
test eax, eax
je 0x4b420b
add dword [esi + 0x24], edi
mov dword [esi + 0x28], eax
xor edi, edi
push 0x38
call fcn.00532491
add esp, 4
cmp eax, edi
je 0x4b4248
mov dword [eax + 0x2c], edi
mov dword [eax + 4], edi
mov dword [eax + 0x30], edi
mov dword [eax + 8], edi
mov dword [eax + 0x10], 5
mov dword [eax + 0x20], edi
mov dword [eax + 0x14], edi
mov byte [eax + 0x34], 1
mov byte [eax + 0xc], 1
mov dword [eax + 0x1c], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x28], edi
mov dword [eax + 0x24], edi
mov dword [eax], esi
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov dword [edx + ecx*4], eax
add dword [esi + 0x20], 1
mov esi, eax
mov dword [esi + 0x2c], ebx
mov al, byte [ebx]
test al, al
je 0x4b4024
mov dl, byte [ebx + 1]
test dl, dl
je 0x4b42a4
mov cl, byte [ebx + 2]
test cl, cl
je 0x4b42a4
cmp al, 0x2d
jne 0x4b4281
cmp dl, al
jne 0x4b4281
cmp cl, 0x3e
je 0x4b42a4
lea eax, [ebx + 1]
mov dword [ebp + 8], eax
mov al, byte [eax]
test al, al
mov ebx, dword [ebp + 8]
jne 0x4b4266
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
mov eax, ebx
sub eax, dword [esi + 0x2c]
test dword [ebp + 0x14], 0x800
lea edx, [esi + 0x2c]
lea edi, [esi + 0x30]
mov dword [edi], eax
je 0x4b42c8
call fcn.004b3de0
mov ecx, dword [esi]
add ebx, 2
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp - 0x18]
cmp byte [ebx], 0x3e
jne 0x4b51d3
add ebx, 1
jmp 0x4b4fb2
mov al, byte [ebx]
test al, al
je 0x4b4024
mov edi, edi
mov dl, byte [ebx + 1]
test dl, dl
je 0x4b432c
mov cl, byte [ebx + 2]
test cl, cl
je 0x4b432c
cmp al, 0x2d
jne 0x4b430b
cmp dl, al
jne 0x4b430b
cmp cl, 0x3e
je 0x4b432c
mov al, byte [ebx + 1]
add ebx, 1
test al, al
mov dword [ebp + 8], ebx
jne 0x4b42f0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
add ebx, 2
jmp 0x4b42d3
cmp al, 0x5b
jne 0x4b4553
mov al, byte [ebx + 1]
add ebx, 1
cmp al, 0x49
jne 0x4b4443
add ebx, 1
cmp byte [ebx], 0x4e
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x43
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x4c
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x55
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x44
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x45
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x5b
jne 0x4b4004
add ebx, 1
test byte [ebp + 0x14], 4
je 0x4b4405
mov eax, dword [ebp + 0x10]
push 7
call fcn.004b3ef0
mov esi, eax
lea edx, [esi + 0x2c]
add esp, 4
mov dword [edx], ebx
cmp byte [ebx], 0x5d
jne 0x4b43d2
cmp byte [ebx + 1], 0x5d
jne 0x4b43d2
cmp byte [ebx + 2], 0x3e
je 0x4b43d7
add ebx, 1
jmp 0x4b43c1
cmp byte [ebx], 0x5d
jne 0x4b43f6
mov eax, ebx
sub eax, dword [edx]
lea edi, [esi + 0x30]
add ebx, 1
test dword [ebp + 0x14], 0x100
mov dword [edi], eax
je 0x4b43f6
call fcn.004b3de0
mov ecx, dword [esi]
mov dword [ebp - 0x18], ecx
mov esi, ecx
add ebx, 1
jmp 0x4b42d3
mov al, byte [ebx]
test al, al
je 0x4b4438
jmp 0x4b4410
mov dl, byte [ebx + 1]
test dl, dl
je 0x4b4438
mov cl, byte [ebx + 2]
test cl, cl
je 0x4b4438
cmp al, 0x5d
jne 0x4b442b
cmp dl, al
jne 0x4b442b
cmp cl, 0x3e
je 0x4b4438
mov al, byte [ebx + 1]
add ebx, 1
test al, al
mov dword [ebp + 8], ebx
jne 0x4b4410
add ebx, 1
add ebx, 1
jmp 0x4b42d3
cmp al, 0x43
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x44
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x41
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x54
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x41
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x5b
jne 0x4b4004
add ebx, 1
test byte [ebp + 0x14], 0x10
je 0x4b4518
mov eax, dword [ebp + 0x10]
push 4
call fcn.004b3ef0
mov edi, eax
lea esi, [edi + 0x2c]
mov dword [esi], ebx
mov al, byte [ebx]
add esp, 4
test al, al
mov dword [ebp - 0x18], edi
je 0x4b44db
mov dl, byte [ebx + 1]
test dl, dl
je 0x4b44db
mov cl, byte [ebx + 2]
test cl, cl
je 0x4b44db
cmp al, 0x5d
jne 0x4b44cc
cmp dl, al
jne 0x4b44cc
cmp cl, 0x3e
je 0x4b44db
lea eax, [ebx + 1]
mov dword [ebp + 8], eax
mov al, byte [eax]
test al, al
mov ebx, dword [ebp + 8]
jne 0x4b44b1
cmp byte [ebx + 2], 0
je 0x4b4024
cmp byte [ebx], 0x5d
jne 0x4b4509
mov edx, ebx
sub edx, dword [esi]
add edi, 0x30
add ebx, 1
test dword [ebp + 0x14], 0x100
mov dword [edi], edx
je 0x4b4506
mov edx, esi
call fcn.004b3de0
mov edi, dword [ebp - 0x18]
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov esi, eax
add ebx, 1
jmp 0x4b42d3
mov al, byte [ebx]
test al, al
je 0x4b4548
mov edi, edi
mov dl, byte [ebx + 1]
test dl, dl
je 0x4b4548
mov cl, byte [ebx + 2]
test cl, cl
je 0x4b4548
cmp al, 0x5d
jne 0x4b453b
cmp dl, al
jne 0x4b453b
cmp cl, 0x3e
je 0x4b4548
mov al, byte [ebx + 1]
add ebx, 1
test al, al
mov dword [ebp + 8], ebx
jne 0x4b4520
add ebx, 1
add ebx, 1
jmp 0x4b42d3
cmp al, 0x44
jne 0x4b48b2
add ebx, 1
cmp byte [ebx], 0x4f
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x43
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x54
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x59
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x50
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x45
jne 0x4b4004
mov al, byte [ebx + 1]
add ebx, 1
sub al, 1
cmp al, 0x1f
jbe 0x4b45a3
cmp byte [ebx], 0
mov dword [ebp + 8], ebx
je 0x4b4024
mov eax, dword [ebp + 0x14]
and eax, 4
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], eax
je 0x4b45ee
mov eax, dword [ebp + 0x10]
push 8
call fcn.004b3ef0
push 3
mov esi, eax
mov dword [ebp - 0x18], eax
call fcn.004b3f40
add esp, 8
mov dword [ebp - 0x1c], eax
mov dword [eax], ebx
mov dword [eax + 0xc], ebx
mov bl, byte [ebx]
call fcn.004b3db0
test al, al
je 0x4b4615
lea esp, [esp]
mov eax, dword [ebp + 8]
mov bl, byte [eax + 1]
add eax, 1
mov dword [ebp + 8], eax
call fcn.004b3db0
test al, al
jne 0x4b4600
mov edi, dword [ebp + 8]
cmp byte [edi], 0
je 0x4b4894
cmp dword [ebp - 0x20], 0
je 0x4b4635
mov ecx, dword [ebp - 0x1c]
mov eax, edi
sub eax, dword [ecx + 0xc]
mov dword [ecx + 0x14], eax
mov dword [ecx + 8], eax
mov al, byte [edi]
add edi, 1
cmp byte [edi], 0
mov dword [ebp + 8], edi
je 0x4b4894
sub al, 1
cmp al, 0x1f
ja 0x4b4670
lea esp, [esp]
mov al, byte [edi]
sub al, 1
cmp al, 0x1f
ja 0x4b465d
add edi, 1
jmp 0x4b4650
cmp byte [edi], 0
mov dword [ebp + 8], edi
je 0x4b4894
lea esp, [esp]
mov bl, byte [edi]
call fcn.004b3db0
test al, al
je 0x4b46e5
mov bl, byte [edi]
mov dword [ebp - 0x1c], edi
call fcn.004b3db0
test al, al
je 0x4b469f
lea esp, [esp]
mov bl, byte [edi + 1]
add edi, 1
call fcn.004b3db0
test al, al
jne 0x4b4690
cmp byte [edi], 0
je 0x4b4894
cmp dword [ebp - 0x20], 0
je 0x4b46cd
push 1
call fcn.004b3f40
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ecx, edi
add esp, 4
sub ecx, edx
mov dword [eax], edx
mov dword [eax + 0xc], edx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], ecx
mov al, byte [edi + 1]
add edi, 1
sub al, 1
cmp al, 0x1f
jbe 0x4b46cd
cmp byte [edi], 0
mov dword [ebp + 8], edi
je 0x4b4894
mov al, byte [edi]
cmp al, 0x22
je 0x4b46f0
cmp al, 0x27
jne 0x4b4765
nop
add edi, 1
mov cl, al
mov al, byte [edi]
test al, al
mov dword [ebp + 8], edi
mov ebx, edi
je 0x4b4765
cmp al, cl
je 0x4b4713
mov al, byte [edi + 1]
add edi, 1
test al, al
mov dword [ebp + 8], edi
jne 0x4b4700
jmp 0x4b4765
cmp byte [edi], 0
je 0x4b4765
cmp dword [ebp - 0x20], 0
je 0x4b4735
push 1
call fcn.004b3f40
mov esi, dword [ebp - 0x18]
mov ecx, edi
add esp, 4
sub ecx, ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x14], ecx
mov al, byte [edi + 1]
add edi, 1
sub al, 1
cmp al, 0x1f
jbe 0x4b4735
mov al, byte [edi]
test al, al
mov dword [ebp + 8], edi
je 0x4b4894
cmp al, 0x22
je 0x4b46f0
cmp al, 0x27
je 0x4b46f0
mov bl, al
call fcn.004b3db0
test al, al
jne 0x4b4670
cmp byte [edi], 0x5b
jne 0x4b48a8
mov edx, dword [ebp - 0x20]
add edi, 1
test edx, edx
mov dword [ebp + 8], edi
je 0x4b477e
mov dword [esi + 0x2c], edi
cmp byte [edi], 0
mov ecx, 1
je 0x4b47a9
mov al, byte [edi]
cmp al, 0x5d
jne 0x4b4793
sub ecx, 1
jmp 0x4b479a
cmp al, 0x5b
jne 0x4b479a
add ecx, 1
test ecx, ecx
je 0x4b47a6
add edi, 1
cmp byte [edi], 0
jne 0x4b4788
mov dword [ebp + 8], edi
test edx, edx
je 0x4b47ec
mov ebx, dword [ebp + 0x14]
lea edx, [esi + 0x2c]
mov eax, edi
sub eax, dword [edx]
lea ecx, [esi + 0x30]
mov dword [ecx], eax
mov eax, ebx
and eax, 0x2000
jne 0x4b481f
test ebx, 0x4000
jne 0x4b481f
test ebx, 0x400
je 0x4b47df
mov edi, ecx
call fcn.004b3de0
mov edi, dword [ebp + 8]
mov eax, dword [esi]
add edi, 1
mov dword [ebp + 8], edi
mov dword [ebp - 0x18], eax
mov esi, eax
mov al, byte [edi]
test al, al
je 0x4b4894
cmp al, 0x3e
je 0x4b4888
mov al, byte [edi + 1]
add edi, 1
test al, al
mov dword [ebp + 8], edi
jne 0x4b47f6
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x4b4867
mov cl, byte [edi]
mov eax, dword [ebp + 0x10]
push ebx
push eax
mov byte [ebp - 0x11], cl
mov byte [edi], 0
mov ecx, dword [edx]
push esi
push ecx
mov dword [ebp - 4], 0
call fcn.004b3fc0
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
jmp 0x4b4862
mov dl, byte [ebp - 0x11]
mov byte [edi], dl
test ebx, 0x4000
je 0x4b47df
lea eax, [edi + 1]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi], 0
jne 0x4b4001
mov edi, dword [ebp + 8]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
mov dword [ebp - 0x18], ecx
jmp 0x4b3ffe
movsx edx, byte [ebp - 0x11]
push edx
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b48de
mov al, byte [ebp - 0x11]
cmp al, 0x5f
je 0x4b48de
cmp al, 0x3a
je 0x4b48de
cmp al, 0x2d
je 0x4b48de
cmp al, 0x2e
je 0x4b48de
test al, al
jge 0x4b4004
mov dword [ebp - 0x1c], ebx
mov al, byte [ebx]
mov byte [ebp + 8], al
movsx eax, al
push eax
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b490d
mov al, byte [ebp + 8]
cmp al, 0x5f
je 0x4b490d
cmp al, 0x3a
je 0x4b490d
cmp al, 0x2d
je 0x4b490d
cmp al, 0x2e
je 0x4b490d
test al, al
jge 0x4b4912
add ebx, 1
jmp 0x4b48e1
mov al, byte [ebx]
test al, al
mov byte [ebp - 0x11], al
je 0x4b4024
add ebx, 1
cmp byte [ebx], 0
je 0x4b4024
mov edi, ebx
sub edi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], 9
sub edi, 1
cmp edi, 7
mov eax, 7
jb 0x4b4946
mov eax, edi
mov ecx, dword [ebp - 0x1c]
push eax
push str.ATTLIST
push ecx
call fcn.00535830
add esp, 0xc
test eax, eax
jne 0x4b4965
mov dword [ebp - 0x20], 0xa
jmp 0x4b49b7
cmp edi, 7
mov eax, 7
jb 0x4b4971
mov eax, edi
mov edx, dword [ebp - 0x1c]
push eax
push str.ELEMENT
push edx
call fcn.00535830
add esp, 0xc
test eax, eax
jne 0x4b4990
mov dword [ebp - 0x20], 0xb
jmp 0x4b49b7
cmp edi, 8
jae 0x4b499a
mov edi, 8
mov eax, dword [ebp - 0x1c]
push edi
push str.NOTATION
push eax
call fcn.00535830
add esp, 0xc
test eax, eax
jne 0x4b49b7
mov dword [ebp - 0x20], 0xc
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 0x10]
push ecx
call fcn.004b3ef0
add esp, 4
cmp byte [ebx], 0
mov dword [ebp - 0x18], eax
je 0x4b4b67
mov al, byte [ebp - 0x11]
sub al, 1
cmp al, 0x1f
ja 0x4b4b67
nop
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
ja 0x4b49ed
add ebx, 1
jmp 0x4b49e0
mov al, byte [ebx]
test al, al
mov dword [ebp + 8], ebx
je 0x4b4024
mov bl, al
call fcn.004b3db0
test al, al
jne 0x4b4a15
mov edx, dword [ebp + 8]
cmp byte [edx], 0x25
jne 0x4b4b64
mov edi, edx
jmp 0x4b4a1d
mov edi, dword [ebp + 8]
cmp byte [edi], 0x25
jne 0x4b4a56
mov esi, dword [ebp - 0x18]
mov dword [esi + 4], edi
mov al, byte [edi + 1]
add edi, 1
sub al, 1
cmp al, 0x1f
ja 0x4b4a5e
nop
mov al, byte [edi]
sub al, 1
cmp al, 0x1f
ja 0x4b4a3d
add edi, 1
jmp 0x4b4a30
cmp byte [edi], 0
jne 0x4b4a5e
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
mov dword [eax + 4], edi
mov esi, eax
mov bl, byte [edi]
call fcn.004b3db0
test al, al
je 0x4b4a7f
lea esp, [esp]
mov bl, byte [edi + 1]
add edi, 1
call fcn.004b3db0
test al, al
jne 0x4b4a70
cmp byte [edi], 0
je 0x4b4894
mov ecx, edi
sub ecx, dword [esi + 4]
add edi, 1
mov dword [esi + 8], ecx
cmp byte [edi], 0
mov bl, byte [edi - 1]
mov dword [ebp + 8], edi
je 0x4b4894
mov dl, bl
sub dl, 1
cmp dl, 0x1f
ja 0x4b4b64
mov eax, dword [ebp + 8]
mov cl, byte [eax]
sub cl, 1
cmp cl, 0x1f
ja 0x4b4ac5
add eax, 1
mov dword [ebp + 8], eax
jmp 0x4b4ab0
cmp byte [eax], 0
je 0x4b4026
cmp dword [ebp - 0x20], 9
jne 0x4b4b76
mov edi, dword [ebp - 0x18]
lea esi, [edi + 0x2c]
mov dword [esi], eax
xor dl, dl
mov cl, byte [eax]
test cl, cl
je 0x4b4b4e
test dl, dl
jne 0x4b4b02
cmp cl, 0x22
je 0x4b4af6
cmp cl, 0x27
jne 0x4b4b10
add eax, 1
mov bl, cl
mov dl, 1
mov dword [ebp + 8], eax
jmp 0x4b4ae2
cmp cl, bl
jne 0x4b4b15
xor dl, dl
add eax, 1
mov dword [ebp + 8], eax
jmp 0x4b4ae2
cmp cl, 0x3e
je 0x4b4b1d
add eax, 1
mov dword [ebp + 8], eax
jmp 0x4b4ae2
mov ecx, eax
sub ecx, dword [esi]
add edi, 0x30
add eax, 1
test dword [ebp + 0x14], 0x200
mov dword [edi], ecx
mov dword [ebp + 8], eax
je 0x4b4b3c
mov edx, esi
call fcn.004b3de0
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov esi, eax
jmp 0x4b4010
test dword [ebp + 0x14], 0x200
je 0x4b4b64
mov edi, dword [ebp - 0x18]
add edi, 0x30
mov edx, esi
call fcn.004b3de0
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov esi, ecx
jmp 0x4b4004
mov esi, dword [ebp - 0x18]
lea edx, [esi + 0x2c]
mov dword [edx], eax
mov cl, byte [eax]
test cl, cl
je 0x4b4026
cmp cl, 0x3e
je 0x4b4ba9
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4b4b88
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [eax], 0
je 0x4b4026
mov ecx, eax
sub ecx, dword [edx]
add eax, 1
test dword [ebp + 0x14], 0x200
lea edi, [esi + 0x30]
mov dword [edi], ecx
mov dword [ebp + 8], eax
je 0x4b4bcf
call fcn.004b3de0
mov edx, dword [esi]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x18], edx
mov esi, edx
jmp 0x4b4010
movsx edx, byte [ebp - 0x11]
push edx
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b4c0a
mov al, byte [ebp - 0x11]
cmp al, 0x5f
je 0x4b4c0a
cmp al, 0x3a
je 0x4b4c0a
cmp al, 0x2d
je 0x4b4c0a
cmp al, 0x2e
je 0x4b4c0a
test al, al
jge 0x4b51f7
test esi, esi
jne 0x4b4c16
mov dword [ebp - 0x18], esi
jmp 0x4b4cae
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x20], eax
jne 0x4b4c3e
mov edi, dword [ebp + 0x10]
add eax, edi
add eax, eax
add eax, eax
push eax
mov eax, dword [esi + 0x28]
push eax
call fcn.0053475d
add esp, 8
test eax, eax
je 0x4b4c3e
add dword [esi + 0x24], edi
mov dword [esi + 0x28], eax
push 0x38
call fcn.00532491
mov edi, eax
add esp, 4
test edi, edi
je 0x4b4c9c
xor eax, eax
push 4
mov dword [edi + 0x2c], eax
mov dword [edi + 4], eax
mov dword [edi + 0x30], eax
mov dword [edi + 8], eax
mov dword [edi + 0x10], 2
mov dword [edi + 0x20], eax
mov dword [edi + 0x14], eax
mov byte [edi + 0x34], 1
mov byte [edi + 0xc], 1
call fcn.00532491
xor ecx, ecx
test eax, eax
setne cl
push 4
mov dword [edi + 0x1c], eax
mov dword [edi + 0x18], ecx
call fcn.00532491
xor edx, edx
add esp, 8
test eax, eax
setne dl
mov dword [edi + 0x28], eax
mov dword [edi + 0x24], edx
mov dword [edi], esi
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x28]
mov dword [ecx + eax*4], edi
add dword [esi + 0x20], 1
mov dword [ebp - 0x18], edi
mov esi, dword [ebp - 0x18]
mov dword [esi + 4], ebx
mov al, byte [ebx]
movsx edx, al
push edx
mov byte [ebp + 8], al
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b4ce0
mov al, byte [ebp + 8]
cmp al, 0x5f
je 0x4b4ce0
cmp al, 0x3a
je 0x4b4ce0
cmp al, 0x2d
je 0x4b4ce0
cmp al, 0x2e
je 0x4b4ce0
test al, al
jge 0x4b4ce5
add ebx, 1
jmp 0x4b4cb4
cmp byte [ebx], 0
mov eax, ebx
je 0x4b4026
sub eax, dword [esi + 4]
add ebx, 1
mov dword [esi + 8], eax
mov al, byte [ebx - 1]
mov cl, byte [ebx]
test cl, cl
je 0x4b4024
cmp al, 0x2f
jne 0x4b4d48
lea ebx, [ebx]
cmp cl, 0x3e
je 0x4b4d33
mov cl, byte [ebx + 1]
add ebx, 1
test cl, cl
jne 0x4b4d10
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
mov ecx, dword [esi]
mov dword [ebp - 0x18], ecx
mov esi, ecx
jmp 0x4b4004
sub al, 1
cmp al, 0x1f
ja 0x4b4faf
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
ja 0x4b4d5f
add ebx, 1
jmp 0x4b4d52
cmp byte [ebx], 0
je 0x4b4024
mov al, byte [ebx]
movsx edx, al
push edx
mov byte [ebp + 8], al
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b4d98
mov al, byte [ebp + 8]
cmp al, 0x5f
je 0x4b4d98
cmp al, 0x3a
je 0x4b4d98
cmp al, 0x2d
je 0x4b4d98
cmp al, 0x2e
je 0x4b4d98
test al, al
jge 0x4b42d0
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
push eax
call fcn.004b3f40
mov edi, eax
add esp, 4
mov dword [edi], ebx
jmp 0x4b4db0
mov al, byte [ebx]
movsx ecx, al
push ecx
mov byte [ebp + 8], al
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b4ddc
mov al, byte [ebp + 8]
cmp al, 0x5f
je 0x4b4ddc
cmp al, 0x3a
je 0x4b4ddc
cmp al, 0x2d
je 0x4b4ddc
cmp al, 0x2e
je 0x4b4ddc
test al, al
jge 0x4b4de1
add ebx, 1
jmp 0x4b4db0
mov al, byte [ebx]
test al, al
je 0x4b4024
mov edx, ebx
sub edx, dword [edi]
add ebx, 1
mov cl, al
mov dword [edi + 8], edx
mov al, byte [ebx]
test al, al
mov byte [ebp - 0x11], al
je 0x4b4024
mov dl, cl
sub dl, 1
cmp dl, 0x1f
ja 0x4b4e2a
mov edi, edi
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
ja 0x4b4e1d
add ebx, 1
jmp 0x4b4e10
mov al, byte [ebx]
test al, al
mov byte [ebp - 0x11], al
je 0x4b4024
cmp cl, 0x3d
je 0x4b4eb8
cmp al, 0x3d
je 0x4b4ebc
movsx edx, byte [ebp - 0x11]
push edx
call fcn.005358f9
add esp, 4
test eax, eax
jne 0x4b4d68
mov al, byte [ebp - 0x11]
cmp al, 0x5f
je 0x4b4d68
cmp al, 0x3a
je 0x4b4d68
cmp al, 0x2d
je 0x4b4d68
cmp al, 0x2e
je 0x4b4d68
test al, al
jl 0x4b4d68
mov al, byte [ebx]
test al, al
je 0x4b42d0
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x10], 6
jne 0x4b42d0
cmp al, 0x3f
je 0x4b4fc4
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b4e92
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x3d
jne 0x4b4ec0
add ebx, 1
nop
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
jbe 0x4b4ebc
mov al, byte [ebx]
test al, al
mov byte [ebp - 0x11], al
je 0x4b4024
cmp al, 0x22
je 0x4b4ee1
cmp al, 0x27
jne 0x4b4e3b
add ebx, 1
lea esi, [edi + 0xc]
mov cl, al
mov dword [esi], ebx
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, cl
je 0x4b4f17
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b4ef5
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
mov ecx, ebx
sub ecx, dword [esi]
lea eax, [edi + 0x14]
add ebx, 1
mov dword [eax], ecx
cmp byte [ebx], 0
je 0x4b4024
test byte [ebp + 0x14], 0x80
je 0x4b4f44
mov edi, eax
mov edx, esi
call fcn.004b3de0
mov al, byte [ebx]
cmp al, 0x3e
mov byte [ebp - 0x11], al
je 0x4b4fac
cmp al, 0x2f
je 0x4b4f8a
sub al, 1
cmp al, 0x1f
ja 0x4b4e3b
jmp 0x4b4f60
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
ja 0x4b4f6d
add ebx, 1
jmp 0x4b4f60
cmp byte [ebx], 0
jne 0x4b4d68
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov al, byte [ebx + 1]
add ebx, 1
sub al, 1
cmp al, 0x1f
jbe 0x4b4f92
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3e
jne 0x4b4faf
add ebx, 1
mov esi, dword [ebp - 0x18]
mov edi, ebx
mov dword [ebp - 0x1c], edi
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
ja 0x4b5010
add ebx, 1
jmp 0x4b4fb7
cmp byte [ebx], 0
je 0x4b4024
lea ecx, [ecx]
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
ja 0x4b4fdd
add ebx, 1
jmp 0x4b4fd0
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3f
jne 0x4b4ff0
add ebx, 1
mov edi, edi
mov al, byte [ebx]
sub al, 1
cmp al, 0x1f
jbe 0x4b4feb
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3e
jne 0x4b5009
add ebx, 1
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
jmp 0x4b4faf
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3c
je 0x4b5161
test esi, esi
mov ebx, edi
je 0x4b50a5
mov eax, dword [esi + 0x24]
cmp dword [esi + 0x20], eax
jne 0x4b5057
mov ecx, dword [ebp + 0x10]
mov edx, dword [esi + 0x28]
add eax, ecx
add eax, eax
add eax, eax
push eax
push edx
call fcn.0053475d
add esp, 8
test eax, eax
je 0x4b5057
mov dword [esi + 0x28], eax
mov eax, dword [ebp + 0x10]
add dword [esi + 0x24], eax
push 0x38
call fcn.00532491
add esp, 4
test eax, eax
je 0x4b5094
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0x30], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 3
mov dword [eax + 0x20], ecx
mov dword [eax + 0x14], ecx
mov byte [eax + 0x34], 1
mov byte [eax + 0xc], 1
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x24], ecx
mov dword [eax], esi
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov dword [edx + ecx*4], eax
add dword [esi + 0x20], 1
mov esi, eax
lea edx, [esi + 0x2c]
mov dword [edx], edi
mov al, byte [edi]
test al, al
je 0x4b50d2
cmp al, 0x3c
je 0x4b50d2
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b50b0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cl, byte [ebx]
test cl, cl
mov byte [ebp - 0x11], cl
je 0x4b4024
mov edi, ebx
sub edi, dword [ebp - 0x1c]
lea eax, [esi + 0x30]
add ebx, 1
mov dword [eax], edi
cmp byte [ebx], 0
mov dword [ebp + 8], ebx
je 0x4b4024
test byte [ebp + 0x14], 0x40
je 0x4b5108
mov edi, eax
call fcn.004b3de0
mov cl, byte [ebp - 0x11]
cmp cl, 0x3c
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
jne 0x4b3ffe
mov eax, dword [ebp + 8]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x4b51ac
cmp cl, 0x3e
je 0x4b5148
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
mov dword [ebp + 8], eax
jne 0x4b5124
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [eax], 0
je 0x4b4026
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x18], edx
jmp 0x4b42d0
cmp byte [ebx + 1], 0x2f
jne 0x4b4010
mov al, byte [ebx]
test al, al
je 0x4b4024
cmp al, 0x3e
je 0x4b5197
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b5175
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
mov esi, eax
jmp 0x4b4004
mov al, byte [eax]
cmp al, 0x21
je 0x4b4047
test al, al
jne 0x4b4047
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0x2f
jne 0x4b4004
add ebx, 1
cmp byte [ebx], 0x3e
jne 0x4b4004
mov ecx, dword [esi]
mov dword [ebp - 0x18], ecx
add ebx, 1
mov esi, ecx
jmp 0x4b4004
mov al, byte [ebx]
cmp al, 0x2f
jne 0x4b4004
cmp al, 0x3e
je 0x4b5223
mov al, byte [ebx + 1]
add ebx, 1
test al, al
jne 0x4b5201
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x4b4024
mov edx, dword [esi]
mov dword [ebp - 0x18], edx
mov esi, edx
jmp 0x4b4004