Function at 0x5466b4
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 0x547c52
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 0x546754
je case.0x546721.42
add edx, 0xffffffdc
cmp edx, 0xa
ja case.0x546721.37
jmp dword [edx*4 + 0x546728]
sub edx, 0x5b
je 0x546829
dec edx
je 0x547717
sub edx, 2
je 0x546777
sub edx, 0x1e
je case.0x546721.41
jmp case.0x546721.37
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e2], 0
jne 0x546797
mov dx, 1
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov dx, 0x22
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e2], 0
jne 0x5467cb
mov dx, 2
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov dx, 0x23
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e0], 0
je 0x54680f
mov dx, 3
mov eax, dword [ebp - 8]
call fcn.00544ad0
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.0x54747a
mov dx, 0x24
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
or dword [eax], 1
jmp case.default.0x54747a
cmp word [eax], 0x5e
jne 0x546867
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9de], 0
je 0x54684c
mov dx, 0x16
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x54685b
mov dx, 5
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x546893
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9de], 0
je 0x546884
mov dx, 0x15
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x546893
mov dx, 4
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x546cef
push ebp
add edx, 2
cmp word [edx], 0x2d
sete dl
call fcn.00546564
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x546cef
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x9a4]
cmp word [ebx], 0x2d
jne 0x546911
mov eax, ebx
add eax, 2
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x546911
add ebx, 2
cmp word [ebx], 0x5d
jne 0x546911
push ebp
xor edx, edx
mov ax, 0x2d
call fcn.00546564
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x546d0d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x2d
jne 0x546a19
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x546a19
cmp byte [ebp - 0x11], 0
je 0x546a19
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 0x5469ab
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
mov ax, word [eax]
call fcn.005429fc
test al, al
je 0x54698e
mov edx, 0x76
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
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.0054630c
mov esi, eax
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9df], 0
je 0x5469e6
cmp word [ebp - 0x14], 0x430
jne 0x5469e6
cmp si, 0x42f
jne 0x5469e6
push ebp
mov dx, 0x44f
mov ax, 0x430
call fcn.005465f0
pop ecx
push ebp
mov dx, 0x42f
mov ax, 0x410
call fcn.005465f0
pop ecx
jmp 0x546a0a
cmp si, word [ebp - 0x14]
jae 0x5469fd
mov edx, 0x6d
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
push ebp
mov edx, esi
mov ax, word [ebp - 0x14]
call fcn.005465f0
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x546cef
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x5c
jne 0x546c8b
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 0x546a5b
mov edx, 0x6e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
call fcn.005429fc
test al, al
je 0x546c22
xor eax, eax
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x11], 0
mov dx, 2
mov eax, dword [ebp - 8]
call fcn.00544b4c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
movzx eax, word [eax]
cmp eax, 0x64
jg 0x546b03
je 0x546b81
add eax, 0xffffffbc
cmp eax, 0x13
ja case.0x546aac.69
jmp dword [eax*4 + 0x546ab3]
sub eax, 0x68
je 0x546be1
sub eax, 0xb
je 0x546b51
sub eax, 3
je 0x546bb1
dec eax
jne case.0x546aac.69
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf4]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf5]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf8]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf9]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf6]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xaf7]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafc]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafd]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafa]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 0xafb]
mov eax, dword [ebp - 8]
call fcn.00544b4c
jmp 0x546ce5
mov edx, 0x3f0
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x546ce5
mov eax, dword [ebp - 8]
lea edx, [eax + 0x9a4]
mov eax, dword [ebp - 8]
call fcn.0054630c
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 0x546c72
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
cmp word [eax], 0x2d
jne 0x546c72
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
cmp word [eax], 0x5d
jne 0x546c76
xor eax, eax
jmp 0x546c78
mov al, 1
mov byte [ebp - 0x27], al
push ebp
mov dl, byte [ebp - 0x27]
mov ax, word [ebp - 0x26]
call fcn.00546564
pop ecx
jmp 0x546ce5
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jae 0x546cc6
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 2
cmp word [eax], 0x2d
jne 0x546cc6
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
add eax, 4
cmp word [eax], 0x5d
jne 0x546cca
xor eax, eax
jmp 0x546ccc
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.00546564
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 0x546d0d
cmp word [edi], 0x5d
jne 0x5468cd
xor eax, eax
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x11], 0
mov dx, 1
mov eax, dword [ebp - 8]
call fcn.00544b4c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x5d
je 0x546d42
mov edx, 0x71
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
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.0x54747a
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 0x54746c
mov edx, eax
add edx, 2
mov bx, word [edx]
movzx edx, bx
cmp edx, 0x3a
jg 0x546e0d
je 0x546e46
add edx, 0xffffffdf
cmp edx, 0x18
ja case.0x546da2.34
jmp dword [edx*4 + 0x546da9]
cmp edx, 0x50
jg 0x546e2c
je 0x546e80
sub edx, 0x3c
je 0x546fa6
dec edx
je case.0x546da2.33
dec edx
je 0x546e59
jmp case.0x546da2.34
sub edx, 0x52
je case.0x546da2.48
add edx, 0xfffffff1
sub edx, 0x1a
jb case.0x546da2.45
jmp case.0x546da2.34
mov byte [ebp - 0x28], 1
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
jmp 0x54746c
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 0x54746c
add eax, 8
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x546e9a
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 0x546ec0
dec dx
je 0x546efb
dec dx
je 0x546f36
jmp 0x546f95
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.00547cb0
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 0x54746c
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.00547cb0
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 0x54746c
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.00547cb0
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.00544864
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x54746c
mov edx, 0x8e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54746c
mov edx, 0x8c
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54746c
add eax, 8
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x546fc0
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 0x547033
sub dx, 0x1c
jne 0x5471bb
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x998]
add edx, 2
cmp eax, edx
je 0x546ffd
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 [0x5eef54]
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 0x54746c
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x998]
add edx, 2
cmp eax, edx
je 0x54704f
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.00542aa0
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x547089
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 0x5471a7
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
sub edx, dword [eax + 0x998]
sar edx, 1
jns 0x5470ac
adc edx, 0
sub edx, 4
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0
jne 0x5470c4
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 0x5470e5
mov dl, 1
mov eax, dword [0x5428e4]
call fcn.005445f8
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.00544710
xor eax, eax
push ebp
push 0x547136
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb00]
call fcn.005449a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x547168
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x26]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xb00]
call fcn.0054b55c
test al, al
je 0x54718e
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0xb04], edx
jmp 0x5471a7
mov eax, dword [ebp - 8]
add eax, 0xb00
call fcn.00410e4c
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 0x54746c
mov edx, 0x98
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54746c
add eax, 6
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x5471e6
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 0x54720e
mov byte [ebp - 0x28], 5
jmp 0x54721c
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 [0x5eef50]
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.00542aa0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x99c]
sub eax, 2
cmp eax, dword [ebp - 0x24]
je 0x54726f
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 0x54746c
mov byte [ebp - 0x28], 3
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 4
jmp 0x54746c
mov byte [ebp - 0x28], 4
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x54746c
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 0x5472cd
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 0x54746c
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 0x547312
add edx, 0xfffffff9
sub dx, 0xa
jb 0x547321
jmp 0x54737a
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp 0x54746c
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 0x547346
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 0x54736b
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 0x54746c
mov edx, 0x84
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54746c
add eax, 8
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x5473a5
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.00547cb0
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 0x54746c
add eax, 4
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x547401
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.00547cb0
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.00544864
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x54746c
mov edx, 0x8e
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x54746c
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.0x54747a
jmp dword [eax*4 + 0x547481]
cmp byte [ebp - 0x28], 0
jne 0x547532
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9c4], 0
jne 0x547532
mov eax, dword [ebp - 8]
cmp dword [eax + 0x81c], 0x59
jge 0x547532
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 0x547532
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00544864
test eax, eax
jl 0x547517
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.005457c4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x547552
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x547c34
mov eax, dword [ebp - 0x1c]
and eax, 5
mov edx, dword [ebp - 0xc]
or dword [edx], eax
jmp case.default.0x54747a
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
jmp case.default.0x54747a
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.00544864
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jge 0x54759d
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.00544b9c
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.0x54747a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov dword [ebp - 0x24], eax
jmp 0x5475e1
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 0x5475fb
cmp word [eax], 0x29
jne 0x5475d7
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x9a4]
cmp word [ebx], 0x29
jne 0x54762b
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x9de]
mov edx, ebx
sub edx, dword [ebp - 0x24]
sar edx, 1
jns 0x54761f
adc edx, 0
mov eax, dword [ebp - 0x24]
call fcn.00542b18
test al, al
jne 0x54763c
mov edx, 0x7f
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
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 0x54767e
cmp word [eax], 0x29
jne 0x54765a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x29
je 0x54769e
mov edx, 0x7d
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov eax, dword [ebp - 0xc]
or dword [eax], 1
mov dx, 0x30
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov eax, dword [ebp - 0xc]
or dword [eax], 1
mov dx, word [ebp - 0x30]
add dx, 0xe6
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov edx, 0x72
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
mov edx, 0x73
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 0x99c]
jb 0x547733
mov edx, 0x74
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
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.0x547754.49
mov al, byte [eax + 0x54775b]
jmp dword [eax*4 + 0x5477a5]
mov dx, 0x25
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x5479f3
mov dx, 0x26
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x5479f3
mov dx, 1
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x5479f3
mov dx, 2
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x5479f3
mov dx, 0x19
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x5479f3
mov dx, 0xc
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0xd
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0x10
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0x11
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0xe
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0xf
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0x29
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0x2a
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0x27
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov dx, 0x28
mov eax, dword [ebp - 8]
call fcn.00544ad0
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 0x5479f3
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0x9de]
movzx edx, bx
sub edx, 0x30
mov eax, dword [ebp - 8]
call fcn.00544b9c
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 0x5479f3
push ebp
mov eax, dword [ebp - 8]
lea edx, [eax + 0x9a4]
mov eax, dword [ebp - 8]
call fcn.0054630c
call fcn.005464ec
pop ecx
mov eax, dword [ebp - 8]
add dword [eax + 0x9a4], 2
jmp case.default.0x54747a
mov eax, dword [ebp - 8]
sub dword [eax + 0x9a4], 2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e3], 0
je 0x547ad1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov bx, word [eax]
cmp bx, 0x23
je 0x547a3d
mov eax, ebx
call fcn.005429e0
test al, al
je 0x547ad1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x23
jne 0x547aa8
jmp 0x547a58
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 0x547a84
cmp word [eax], 0xd
je 0x547a84
cmp word [eax], 0xa
jne 0x547a4e
jmp 0x547a84
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 0x547a7a
cmp ax, 0xa
je 0x547a7a
jmp 0x547abd
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.005429e0
test al, al
jne 0x547a9e
mov dx, 0x13
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp case.default.0x54747a
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x99c]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
call fcn.00544c60
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jg 0x547b28
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x9a4]
cmp word [ebx], 0x7b
je 0x547b11
mov edx, 0x77
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx]
jmp 0x547c34
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x99c]
mov eax, ebx
add eax, 2
call fcn.00544c60
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 0x547b5c
cmp ax, 0x2a
je 0x547b59
cmp ax, 0x2b
je 0x547b59
cmp ax, 0x3f
je 0x547b59
cmp ax, 0x7b
jne 0x547b5c
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
or dword [eax], 1
cmp dword [ebp - 0x20], 1
jne 0x547b6e
mov eax, dword [ebp - 0xc]
or dword [eax], 2
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9de], 0
je 0x547b8b
mov dx, 0x14
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
jmp 0x547b9a
mov dx, 8
mov eax, dword [ebp - 8]
call fcn.00544ad0
mov dword [ebp - 4], eax
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00544b74
jmp 0x547c09
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e3], 0
je 0x547bc7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov ax, word [eax]
call fcn.005429e0
test al, al
jne 0x547bfc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
mov dx, word [eax]
mov eax, dword [ebp - 8]
call fcn.00544b4c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9b4]
mov edx, dword [ebp - 8]
add edx, 0x9ac
cmp eax, edx
je 0x547bfc
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.0x54747a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x9e3], 0
je 0x547ba6
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x9a4]
cmp word [eax], 0x23
jne 0x547ba6
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 0x547c59
lea eax, [ebp - 0x34]
call fcn.00405788
lea eax, [ebp - 0x2c]
call fcn.00405788
ret