Function at 0x546b74
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x548112
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, eax
sub edx, 2
movzx edx, word [edx]
cmp edx, 0x3f
jg 0x546c14
je case.0x546be1.42
add edx, 0xffffffdc
cmp edx, 0xa
ja case.0x546be1.37
jmp dword [edx*4 + 0x546be8]
sub edx, 0x5b
je 0x546ce9
dec edx
je 0x547bd7
sub edx, 2
je 0x546c37
sub edx, 0x1e
je case.0x546be1.41
jmp case.0x546be1.37
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e2], 0
jne 0x546c57
mov dx, 1
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov dx, 0x22
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e2], 0
jne 0x546c8b
mov dx, 2
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov dx, 0x23
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e0], 0
je 0x546ccf
mov dx, 3
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp case.default.0x54793a
mov dx, 0x24
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp case.default.0x54793a
cmp word [eax], 0x5e
jne 0x546d27
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9de], 0
je 0x546d0c
mov dx, 0x16
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x546d1b
mov dx, 5
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x546d53
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9de], 0
je 0x546d44
mov dx, 0x15
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x546d53
mov dx, 4
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x9a4]
mov ax, word [edx]
cmp ax, 0x5d
jne 0x5471af
push ebp
add edx, 2
cmp word [edx], 0x2d
sete dl
call fcn.00546a24
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x5471af
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x9a4]
cmp word [ebx], 0x2d
jne 0x546dd1
mov eax, ebx
add eax, 2
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x546dd1
add ebx, 2
cmp word [ebx], 0x5d
jne 0x546dd1
push ebp
xor edx, edx
mov ax, 0x2d
call fcn.00546a24
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x5471cd
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x2d
jne 0x546ed9
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x546ed9
cmp byte [ebp - 0x11], 0
je 0x546ed9
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov si, word [eax]
cmp si, 0x5c
jne 0x546e6b
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
mov ax, word [eax]
call fcn.00542ebc
test al, al
je 0x546e4e
mov edx, 0x76
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
lea edx, [eax + 0x9a4]
mov eax, dword [ebp - 8]
call fcn.005467cc
mov esi, eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9df], 0
je 0x546ea6
cmp word [ebp - 0x14], 0x430
jne 0x546ea6
cmp si, 0x42f
jne 0x546ea6
push ebp
mov dx, 0x44f
mov ax, 0x430
call fcn.00546ab0
pop ecx
push ebp
mov dx, 0x42f
mov ax, 0x410
call fcn.00546ab0
pop ecx
jmp 0x546eca
cmp si, word [ebp - 0x14]
jae 0x546ebd
mov edx, 0x6d
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
push ebp
mov edx, esi
mov ax, word [ebp - 0x14]
call fcn.00546ab0
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x5471af
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x5c
jne 0x54714b
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x546f1b
mov edx, 0x6e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
call fcn.00542ebc
test al, al
je 0x5470e2
xor eax, eax
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x11], 0
mov dx, 2
mov eax, dword [ebp - 8]
call fcn.0054500c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
movzx eax, word [eax]
cmp eax, 0x64
jg 0x546fc3
je 0x547041
add eax, 0xffffffbc
cmp eax, 0x13
ja case.0x546f6c.69
jmp dword [eax*4 + 0x546f73]
sub eax, 0x68
je 0x5470a1
sub eax, 0xb
je 0x547011
sub eax, 3
je 0x547071
dec eax
jne case.0x546f6c.69
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf4]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf5]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf8]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf9]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf6]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf7]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafc]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafd]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafa]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafb]
mov eax, dword [ebp - 8]
call fcn.0054500c
jmp 0x5471a5
mov edx, 0x3f0
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5471a5
mov eax, dword [ebp - 8]
lea edx, [eax + 0x9a4]
mov eax, dword [ebp - 8]
call fcn.005467cc
mov word [ebp - 0x26], ax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x547132
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
cmp word [eax], 0x2d
jne 0x547132
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
cmp word [eax], 0x5d
jne 0x547136
xor eax, eax
jmp 0x547138
mov al, 1
mov byte [ebp - 0x27], al
push ebp
mov dl, byte [ebp - 0x27]
mov ax, word [ebp - 0x26]
call fcn.00546a24
pop ecx
jmp 0x5471a5
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x547186
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
cmp word [eax], 0x2d
jne 0x547186
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
cmp word [eax], 0x5d
jne 0x54718a
xor eax, eax
jmp 0x54718c
mov al, 1
mov byte [ebp - 0x27], al
push ebp
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
mov dl, byte [ebp - 0x27]
call fcn.00546a24
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov edi, dword [eax + 0x9a4]
mov eax, dword [ebp - 8]
cmp edi, dword [eax + 0x99c]
jae 0x5471cd
cmp word [edi], 0x5d
jne 0x546d8d
xor eax, eax
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x11], 0
mov dx, 1
mov eax, dword [ebp - 8]
call fcn.0054500c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x5d
je 0x547202
mov edx, 0x71
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp case.default.0x54793a
mov byte [ebp - 0x28], 0
lea eax, [ebp - 0x2c]
call fcn.00405788
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x3f
jne 0x54792c
mov edx, eax
add edx, 2
mov bx, word [edx]
movzx edx, bx
cmp edx, 0x3a
jg 0x5472cd
je 0x547306
add edx, 0xffffffdf
cmp edx, 0x18
ja case.0x547262.34
jmp dword [edx*4 + 0x547269]
cmp edx, 0x50
jg 0x5472ec
je 0x547340
sub edx, 0x3c
je 0x547466
dec edx
je case.0x547262.33
dec edx
je 0x547319
jmp case.0x547262.34
sub edx, 0x52
je case.0x547262.48
add edx, 0xfffffff1
sub edx, 0x1a
jb case.0x547262.45
jmp case.0x547262.34
mov byte [ebp - 0x28], 1
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
jmp 0x54792c
mov byte [ebp - 0x28], 1
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a8]
mov edx, dword [ebp - 8]
mov byte [edx + eax + 0x5a4], 1
jmp 0x54792c
add eax, 8
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x54735a
mov edx, 0x8c
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, eax
add edx, 4
mov dx, word [edx]
sub dx, 0x3c
je 0x547380
dec dx
je 0x5473bb
dec dx
je 0x5473f6
jmp 0x547455
mov byte [ebp - 0x28], 0
push 0x3e
lea edx, [ebp - 0x2c]
push edx
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x99c]
mov edx, eax
add edx, 6
mov eax, dword [ebp - 8]
call fcn.00548170
mov eax, dword [ebp - 0x2c]
call fcn.004059e8
add eax, 4
add eax, eax
mov edx, dword [ebp - 8]
add dword [edx + 0x9a4], eax
jmp 0x54792c
mov byte [ebp - 0x28], 2
push 0x29
lea edx, [ebp - 0x2c]
push edx
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x99c]
mov edx, eax
add edx, 6
mov eax, dword [ebp - 8]
call fcn.00548170
mov eax, dword [ebp - 0x2c]
call fcn.004059e8
add eax, 4
add eax, eax
mov edx, dword [ebp - 8]
add dword [edx + 0x9a4], eax
jmp 0x54792c
mov byte [ebp - 0x28], 0xa
push 0x29
lea edx, [ebp - 0x2c]
push edx
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x99c]
mov edx, eax
add edx, 6
mov eax, dword [ebp - 8]
call fcn.00548170
mov eax, dword [ebp - 0x2c]
call fcn.004059e8
add eax, 4
add eax, eax
mov edx, dword [ebp - 8]
add dword [edx + 0x9a4], eax
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00544d24
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x54792c
mov edx, 0x8e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54792c
mov edx, 0x8c
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54792c
add eax, 8
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x547480
mov edx, 0x98
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, eax
add edx, 4
mov dx, word [edx]
sub dx, 0x21
je 0x5474f3
sub dx, 0x1c
jne 0x54767b
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x998]
add edx, 2
cmp eax, edx
je 0x5474bd
mov edx, 0x9a
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov byte [ebp - 0x28], 7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a8]
mov edx, dword [ebp - 8]
mov cl, byte [0x5f5f54]
mov byte [edx + eax + 0x5a4], cl
mov eax, dword [ebp - 8]
mov byte [eax + 0x864], 1
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 6
jmp 0x54792c
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x998]
add edx, 2
cmp eax, edx
je 0x54750f
mov edx, 0x9a
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov byte [ebp - 0x28], 8
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 6
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x99c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
call fcn.00542f60
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x547549
mov edx, 0x67
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9c4], 0
jne 0x547667
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
sub edx, dword [eax + 0x998]
sar edx, 1
jns 0x54756c
adc edx, 0
sub edx, 4
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0
jne 0x547584
mov edx, 0x98
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
cmp dword [eax + 0xb00], 0
jne 0x5475a5
mov dl, 1
mov eax, dword [0x542da4]
call fcn.00544ab8
mov edx, dword [ebp - 8]
mov dword [edx + 0xb00], eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9c8]
mov ecx, dword [ebp - 0x20]
mov edx, 5
call fcn.00405b88
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb00]
call fcn.00544bd0
xor eax, eax
push ebp
push 0x5475f6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb00]
call fcn.00544e64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x547628
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x26]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb00]
call fcn.0054ba1c
test al, al
je 0x54764e
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0xb04], edx
jmp 0x547667
mov eax, dword [ebp - 8]
add eax, 0xb00
call fcn.00410eac
mov edx, 0x99
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 0x24]
add eax, 2
mov edx, dword [ebp - 8]
mov dword [edx + 0x9a4], eax
jmp 0x54792c
mov edx, 0x98
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54792c
add eax, 6
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x5476a6
mov edx, 0x96
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
mov byte [eax + 0x85c], 1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a8]
mov edx, dword [ebp - 8]
mov dword [edx + 0x860], eax
cmp bx, 0x3d
jne 0x5476ce
mov byte [ebp - 0x28], 5
jmp 0x5476dc
mov byte [ebp - 0x28], 6
mov eax, dword [ebp - 8]
mov byte [eax + 0x85d], 1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a8]
mov edx, dword [ebp - 8]
mov cl, byte [0x5f5f50]
mov byte [edx + eax + 0x5a4], cl
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x99c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
call fcn.00542f60
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x99c]
sub eax, 2
cmp eax, dword [ebp - 0x24]
je 0x54772f
mov edx, 0x9a
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
jmp 0x54792c
mov byte [ebp - 0x28], 3
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
jmp 0x54792c
mov byte [ebp - 0x28], 4
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x54792c
mov byte [ebp - 0x28], 9
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x29
je 0x54778d
mov edx, 0x84
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x54792c
mov byte [ebp - 0x28], 0xa
movzx eax, bx
sub eax, 0x30
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
mov edx, eax
sub dx, 0x29
je 0x5477d2
add edx, 0xfffffff9
sub dx, 0xa
jb 0x5477e1
jmp 0x54783a
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x54792c
mov edx, dword [ebp - 0x30]
add edx, edx
lea edx, [edx + edx*4]
movzx eax, ax
add edx, eax
sub edx, 0x30
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0x5a
jl 0x547806
mov edx, 0x85
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x29
je 0x54782b
mov edx, 0x85
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x54792c
mov edx, 0x84
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54792c
add eax, 8
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x547865
mov edx, 0x8c
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov byte [ebp - 0x28], 0
push 0x27
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x99c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x9a4]
add edx, 4
mov eax, dword [ebp - 8]
call fcn.00548170
mov eax, dword [ebp - 0x2c]
call fcn.004059e8
add eax, 3
add eax, eax
mov edx, dword [ebp - 8]
add dword [edx + 0x9a4], eax
jmp 0x54792c
add eax, 4
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x5478c1
mov edx, 0x85
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov byte [ebp - 0x28], 0xa
push 0x29
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x99c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x9a4]
add edx, 4
mov eax, dword [ebp - 8]
call fcn.00548170
mov eax, dword [ebp - 0x2c]
call fcn.004059e8
add eax, 3
add eax, eax
mov edx, dword [ebp - 8]
add dword [edx + 0x9a4], eax
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00544d24
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x54792c
mov edx, 0x8e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54792c
mov edx, 0x78
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
xor eax, eax
mov al, byte [ebp - 0x28]
cmp eax, 0xa
ja case.default.0x54793a
jmp dword [eax*4 + 0x547941]
cmp byte [ebp - 0x28], 0
jne 0x5479f2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9c4], 0
jne 0x5479f2
mov eax, dword [ebp - 8]
cmp dword [eax + 0x81c], 0x59
jge 0x5479f2
mov eax, dword [ebp - 8]
inc dword [eax + 0x81c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x81c]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x9a8]
mov dword [edx + eax*4 + 0x2d4], ecx
mov eax, dword [ebp - 0x2c]
xor edx, edx
call fcn.00405b04
je 0x5479f2
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00544d24
test eax, eax
jl 0x5479d7
mov edx, 0x8f
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x81c]
mov edx, dword [ebp - 8]
lea eax, [edx + eax*4 + 0x43c]
mov edx, dword [ebp - 0x2c]
call fcn.004057c4
lea ecx, [ebp - 0x1c]
mov dl, 1
mov eax, dword [ebp - 8]
call fcn.00545c84
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x547a12
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x5480f4
mov eax, dword [ebp - 0x1c]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp case.default.0x54793a
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
jmp case.default.0x54793a
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00544d24
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jge 0x547a5d
mov edx, 0x8e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x9de]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.0054505c
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov dword [ebp - 0x24], eax
jmp 0x547aa1
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x547abb
cmp word [eax], 0x29
jne 0x547a97
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x9a4]
cmp word [ebx], 0x29
jne 0x547aeb
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x9de]
mov edx, ebx
sub edx, dword [ebp - 0x24]
sar edx, 1
jns 0x547adf
adc edx, 0
mov eax, dword [ebp - 0x24]
call fcn.00542fd8
test al, al
jne 0x547afc
mov edx, 0x7f
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x547b3e
cmp word [eax], 0x29
jne 0x547b1a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x29
je 0x547b5e
mov edx, 0x7d
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 0xc]
or dword [eax], 1
mov dx, 0x30
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 0xc]
or dword [eax], 1
mov dx, word [ebp - 0x30]
add dx, 0xe6
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov edx, 0x72
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov edx, 0x73
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x547bf3
mov edx, 0x74
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov bx, word [eax]
movzx eax, bx
add eax, 0xffffffcf
cmp eax, 0x49
ja case.0x547c14.49
mov al, byte [eax + 0x547c1b]
jmp dword [eax*4 + 0x547c65]
mov dx, 0x25
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x547eb3
mov dx, 0x26
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x547eb3
mov dx, 1
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x547eb3
mov dx, 2
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x547eb3
mov dx, 0x19
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x547eb3
mov dx, 0xc
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0xd
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0x10
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0x11
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0xe
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0xf
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0x29
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0x2a
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0x27
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov dx, 0x28
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x9de]
movzx edx, bx
sub edx, 0x30
mov eax, dword [ebp - 8]
call fcn.0054505c
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
or eax, 1
or eax, 2
mov edx, dword [ebp - 0xc]
mov dword [edx], eax
jmp 0x547eb3
push ebp
mov eax, dword [ebp - 8]
lea edx, [eax + 0x9a4]
mov eax, dword [ebp - 8]
call fcn.005467cc
call fcn.005469ac
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp case.default.0x54793a
mov eax, dword [ebp - 8]
sub dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e3], 0
je 0x547f91
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov bx, word [eax]
cmp bx, 0x23
je 0x547efd
mov eax, ebx
call fcn.00542ea0
test al, al
je 0x547f91
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x23
jne 0x547f68
jmp 0x547f18
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x547f44
cmp word [eax], 0xd
je 0x547f44
cmp word [eax], 0xa
jne 0x547f0e
jmp 0x547f44
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
cmp ax, 0xd
je 0x547f3a
cmp ax, 0xa
je 0x547f3a
jmp 0x547f7d
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
call fcn.00542ea0
test al, al
jne 0x547f5e
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp case.default.0x54793a
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x99c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
call fcn.00545120
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jg 0x547fe8
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x9a4]
cmp word [ebx], 0x7b
je 0x547fd1
mov edx, 0x77
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x5480f4
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x99c]
mov eax, ebx
add eax, 2
call fcn.00545120
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov edx, dword [ebp - 0x20]
add edx, edx
add eax, edx
mov ax, word [eax]
cmp dword [ebp - 0x20], 1
jle 0x54801c
cmp ax, 0x2a
je 0x548019
cmp ax, 0x2b
je 0x548019
cmp ax, 0x3f
je 0x548019
cmp ax, 0x7b
jne 0x54801c
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp dword [ebp - 0x20], 1
jne 0x54802e
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9de], 0
je 0x54804b
mov dx, 0x14
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
jmp 0x54805a
mov dx, 8
mov eax, dword [ebp - 8]
call fcn.00544f90
mov dword [ebp - 4], eax
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00545034
jmp 0x5480c9
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e3], 0
je 0x548087
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
call fcn.00542ea0
test al, al
jne 0x5480bc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov dx, word [eax]
mov eax, dword [ebp - 8]
call fcn.0054500c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9b4]
mov edx, dword [ebp - 8]
add edx, 0x9ac
cmp eax, edx
je 0x5480bc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9c0]
inc dword [eax]
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0
jle case.default.0x54793a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e3], 0
je 0x548066
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x23
jne 0x548066
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x548119
lea eax, [ebp - 0x34]
call fcn.00405788
lea eax, [ebp - 0x2c]
call fcn.00405788
ret