Function at 0x473e90
Capabilities:
Parse credit card information

Disassembly:
mov eax, 0x1918
call fcn.0051dcc0
mov eax, dword [0x572844]
xor eax, esp
mov dword [esp + 0x1914], eax
push esi
push edi
mov edi, dword [esp + 0x1924]
mov esi, ecx
push edi
mov dword [esp + 0x1c], esi
call fcn.0040bc50
test al, al
jne 0x475528
movzx eax, word [edi]
push ebx
push ebp
push eax
call fcn.004b4390
add eax, 0xffffffc0
cmp eax, 0x1a
ja case.0x473edc.66
jmp dword [eax*4 + 0x475544]
xor eax, eax
cmp word [edi + 2], 0x2b
sete al
inc eax
mov dword [esi + 0xd534], eax
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
add eax, 0xffffffbd
cmp eax, 0x13
ja case.0x473f16.69
movzx eax, byte [eax + 0x4755d4]
jmp dword [eax*4 + 0x4755b0]
mov byte [esi + 0x715c], 1
jmp case.0x473f16.78
movzx eax, word [edi + 4]
test ax, ax
jne 0x473f41
mov dword [esi + 0x84e0], 1
jmp case.0x473f16.78
cmp eax, 0x31
jne 0x473f55
mov dword [esi + 0x84e0], 2
jmp case.0x473f16.78
cmp eax, 0x32
jne case.0x473f16.78
mov dword [esi + 0x84e0], 3
jmp case.0x473f16.78
movzx eax, word [edi + 4]
lea ebx, [edi + 4]
add edi, 6
cmp eax, 0x2d
jne 0x473f8e
cmp word [edi], 0
jne 0x473f8e
mov byte [esi + 0x71c1], 0
jmp case.0x473f16.78
push eax
call fcn.004b4390
push 0x80
cmp eax, 0x46
jne 0x473fb0
push edi
add esi, 0x72c2
push esi
call fcn.004b0360
jmp case.0x473f16.78
mov byte [esi + 0x71c1], 1
add esi, 0x71c2
push ebx
push esi
call fcn.004b0360
jmp case.0x473f16.78
mov byte [esi + 0x73c6], 1
jmp case.0x473f16.78
mov byte [esi + 0x715d], 1
jmp case.0x473f16.78
push 0x800
lea eax, [edi + 4]
add esi, 0x4028
push eax
push esi
call fcn.004b0360
jmp case.0x473f16.78
mov byte [esi + 0x73c2], 1
jmp case.0x473f16.78
cmp word [edi + 4], 0
jne 0x474046
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x2d
je 0x47403f
cmp eax, 0x4c
je 0x474033
cmp eax, 0x55
jne 0x474046
mov dword [esi + 0x7198], 1
jmp 0x474046
mov dword [esi + 0x7198], 2
jmp 0x474046
mov byte [esi + 0x715e], 1
push 0x551d4c
lea eax, [edi + 2]
push eax
call fcn.004b4410
test eax, eax
jne case.0x473f16.78
mov byte [esi + 0x741a], 1
jmp case.0x473f16.78
cmp word [edi + 4], 0
jne case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
add eax, 0xffffffba
cmp eax, 0x11
ja case.0x473f16.78
movzx eax, byte [eax + 0x475600]
jmp dword [eax*4 + 0x4755e8]
mov byte [esi + 0x7192], 1
jmp case.0x473f16.78
mov byte [esi + 0x71a9], 1
jmp case.0x473f16.78
mov byte [esi + 0x71aa], 1
jmp case.0x473f16.78
mov byte [esi + 0x71aa], 1
mov byte [esi + 0x71ae], 1
jmp case.0x473f16.78
mov byte [esi + 0x71aa], 1
mov byte [esi + 0x71af], 1
jmp case.0x473f16.78
movzx eax, word [edi + 2]
lea ebx, [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x50
je 0x474125
cmp word [ebx], 0x2b
mov ecx, esi
jne 0x474114
lea eax, [esi + 9]
push eax
lea eax, [edi + 4]
push eax
call fcn.00473390
or dword [esi + 4], eax
mov byte [esi + 0xa], 1
jmp case.0x473f16.78
lea eax, [esi + 8]
push eax
push ebx
call fcn.00473390
or dword [esi], eax
jmp case.0x473f16.78
movzx eax, word [edi + 4]
cmp eax, 0x34
ja case.0x473f16.78
movzx eax, byte [eax + 0x47562c]
jmp dword [eax*4 + 0x475614]
mov dword [esi + 0x7164], 1
jmp case.0x473f16.78
mov dword [esi + 0x7164], 2
jmp case.0x473f16.78
mov dword [esi + 0x7164], 3
jmp case.0x473f16.78
mov dword [esi + 0x7164], 4
jmp case.0x473f16.78
push 0x800
lea eax, [edi + 6]
add esi, 0x5028
push eax
push esi
call fcn.004b0360
jmp case.0x473f16.78
cmp word [edi + 2], 0
jne case.0x473f16.69
mov byte [esi + 0x715f], 1
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x50
je 0x4741fb
cmp eax, 0x54
jne case.0x473f16.69
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
sub eax, 0x42
je 0x4741ec
sub eax, 1
jne case.0x473f16.69
mov dword [esi + 0x7140], 2
jmp case.0x473f16.78
mov dword [esi + 0x7140], 3
jmp case.0x473f16.78
lea ecx, [esi + 0x612a]
lea ebx, [edi + 4]
mov byte [ecx], 1
cmp word [ebx], 0
je 0x474261
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x474212
sub ecx, edx
sar ecx, 1
cmp ecx, 0x80
jb 0x474232
push 0x7f
push 0x63
call fcn.00472dc0
push ebx
lea ecx, [esi + 0x6028]
call fcn.004ad7b0
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x474243
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
push edi
call fcn.004ad810
jmp case.0x473f16.78
cmp byte [esi + 0x6128], 0
jne case.0x473f16.78
lea eax, [esi + 0xd52f]
add esi, 0x6028
push eax
push ecx
push esi
call fcn.004031e0
test al, al
jne case.0x473f16.78
push 0xff
mov ecx, 0x5b68fc
call fcn.0047aed0
jmp case.0x473f16.78
push 3
push 0x551d54
lea ebx, [edi + 2]
push ebx
call fcn.004b4460
test eax, eax
jne 0x4742d6
add edi, 8
cmp word [edi], ax
jne 0x4742bf
mov edi, str.rar.log
push 0x800
push edi
add esi, 0x612e
push esi
call fcn.004b0360
jmp case.0x473f16.78
push 3
push 0x551d6c
push ebx
call fcn.004b4460
test eax, eax
jne 0x4742fb
cmp word [edi + 8], 0x2d
sete al
inc eax
mov dword [esi + 0x7134], eax
jmp case.0x473f16.78
push 0x551d74
push ebx
call fcn.004b4410
test eax, eax
jne 0x474319
mov dword [esi + 0x7130], 1
jmp case.0x473f16.78
push 3
push 0x551d7c
push ebx
call fcn.004b4460
test eax, eax
jne 0x47434e
add edi, 8
cmp word [edi], ax
jne 0x474337
mov edi, 0x551d84
push 0x800
push edi
add esi, 0x74dc
push esi
call fcn.004b0360
jmp case.0x473f16.78
push 0x551d88
push ebx
call fcn.004b4410
test eax, eax
jne 0x474369
mov byte [esi + 0x7191], 1
jmp case.0x473f16.78
push 0x551d8c
push ebx
call fcn.004b4410
test eax, eax
jne 0x474387
mov dword [esi + 0x7130], 3
jmp case.0x473f16.78
movzx eax, word [ebx]
push eax
call fcn.004b4390
cmp eax, 0x44
jne 0x47440f
lea ebx, [eax - 0x42]
movzx eax, word [edi + 4]
mov ecx, eax
test ax, ax
je case.0x473f16.78
movzx eax, cx
push eax
call fcn.004b4390
add eax, 0xffffffbd
cmp eax, 0x13
ja case.0x4743bf.69
movzx eax, byte [eax + 0x475680]
jmp dword [eax*4 + 0x475664]
mov dword [esi + 0x7130], 2
jmp case.0x4743bf.69
mov byte [esi + 0x714d], 1
jmp case.0x4743bf.69
mov byte [esi + 0x714e], 1
jmp case.0x4743bf.69
mov byte [esi + 0x714c], 1
jmp case.0x4743bf.69
mov byte [esi + 0x714f], 1
jmp case.0x4743bf.69
mov byte [esi + 0x7191], 1
movzx eax, word [edi + ebx*2 + 2]
inc ebx
mov ecx, eax
test ax, ax
jne 0x4743a7
jmp case.0x473f16.78
push 3
push 0x551d94
push ebx
call fcn.004b4460
test eax, eax
jne 0x474477
movzx eax, word [edi + 8]
cmp eax, 0x34
ja case.0x473f16.78
movzx eax, byte [eax + 0x4756a8]
jmp dword [eax*4 + 0x475694]
mov dword [esi + 0x84e4], 1
jmp case.0x473f16.78
mov dword [esi + 0x84e4], 2
jmp case.0x473f16.78
mov dword [esi + 0x84e4], 3
jmp case.0x473f16.78
mov dword [esi + 0x84e4], 4
jmp case.0x473f16.78
push 0x551d9c
push ebx
call fcn.004b4410
test eax, eax
jne 0x474492
mov byte [esi + 0x7150], 1
jmp case.0x473f16.78
push 0x551da4
push ebx
call fcn.004b4410
test eax, eax
jne case.0x473f16.78
mov byte [esi + 0x71c0], 1
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
test eax, eax
je 0x4744d4
cmp eax, 0x42
jne case.0x473f16.78
mov byte [esi + 0x71a8], 1
jmp case.0x473f16.78
mov byte [esi + 0x7418], 1
jmp case.0x473f16.78
push 2
push 0x551dac
lea eax, [edi + 2]
push eax
call fcn.004b4460
test eax, eax
jne case.0x473f16.78
lea eax, [edi + 6]
mov ecx, 0x5b68e8
push eax
call fcn.004885a0
test al, al
jne case.0x473f16.78
push edi
mov ecx, esi
call fcn.00473080
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
add eax, 0xffffffbf
cmp eax, 0x13
ja case.0x474538.66
movzx eax, byte [eax + 0x475700]
jmp dword [eax*4 + 0x4756e0]
movzx eax, word [edi + 4]
test ax, ax
je 0x47455a
cmp eax, 0x35
je 0x47455a
xor al, al
mov byte [esi + 0x71ac], al
jmp case.0x473f16.78
mov al, 1
mov byte [esi + 0x71ac], al
jmp case.0x473f16.78
movzx eax, word [edi + 4]
add edi, 4
cmp eax, 0x2d
jne 0x474593
add esi, 0x741c
mov eax, 0x10
mov edi, edi
mov dword [esi], 3
lea esi, [esi + 0xc]
sub eax, 1
jne 0x474580
jmp case.0x473f16.78
test ax, ax
je case.0x473f16.78
mov ecx, eax
mov edi, edi
mov ebp, 1
movzx eax, cx
push eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
lea ebx, [ebp + 7]
call fcn.004aff30
test al, al
je 0x4745f1
push edi
call fcn.004b42d0
movzx ecx, word [edi]
push ecx
mov dword [esp + 0x18], eax
call fcn.004aff30
test al, al
je 0x4745f1
lea esp, [esp]
movzx eax, word [edi + 2]
add edi, 2
push eax
call fcn.004aff30
test al, al
jne 0x4745e0
cmp word [edi], 0x3a
jne 0x474637
lea eax, [edi + 2]
mov dword [esp + 0x18], eax
movzx eax, word [eax]
push eax
call fcn.004aff30
test al, al
je 0x474637
mov edi, dword [esp + 0x18]
push edi
call fcn.004b42d0
movzx ecx, word [edi]
push ecx
mov dword [esp + 0x20], eax
call fcn.004aff30
test al, al
je 0x474637
movzx eax, word [edi + 2]
add edi, 2
push eax
call fcn.004aff30
test al, al
jne 0x474626
movzx eax, word [edi]
add edi, 2
push eax
call fcn.004b4390
add eax, 0xffffffbf
cmp eax, 0x13
ja case.0x474652.66
movzx eax, byte [eax + 0x475730]
jmp dword [eax*4 + 0x475714]
mov ebx, 7
jmp case.0x474652.66
mov ebx, ebp
jmp case.0x474652.66
xor ebx, ebx
jmp case.0x474652.66
mov ebx, 4
jmp case.0x474652.66
mov ebx, 5
jmp case.0x474652.66
mov ebx, 3
movzx eax, word [edi]
cmp eax, 0x2b
je 0x474688
cmp eax, 0x2d
jne 0x47469a
add edi, 2
mov ebp, 2
cmp eax, 0x2b
je 0x47469a
mov ebp, 3
mov ecx, dword [esp + 0x14]
lea eax, [ebx + ebx*2]
mov dword [esi + eax*4 + 0x741c], ebp
lea eax, [ebx + ebx*2]
mov dword [esi + eax*4 + 0x7420], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esi + eax*4 + 0x7424], ecx
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x4745a0
jmp case.0x473f16.78
lea ebx, [edi + 4]
push ebx
call fcn.004b42d0
mov dword [esi + 0xc], eax
test eax, eax
jne 0x4746f5
movzx eax, word [ebx]
push eax
call fcn.004b4390
mov edx, 0x10000
lea ecx, [eax - 0x41]
shl edx, cl
jmp 0x474734
mov ecx, edi
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x474700
sub ecx, edx
sar ecx, 1
movzx eax, word [edi + ecx*2 - 2]
push eax
call fcn.004b4390
mov edx, dword [esi + 0xc]
sub eax, 0x47
je 0x474731
sub eax, 4
je 0x47472c
shl edx, 0x14
jmp 0x474734
shl edx, 0xa
jmp 0x474734
shl edx, 0x1e
xor edi, edi
mov dword [esi + 0xc], edx
cmp edx, 0x40000000
ja 0x474761
mov eax, 0x10000
xor ecx, ecx
cmp edx, eax
jne 0x474750
cmp edi, ecx
je 0x474778
shld ecx, eax, 1
add eax, eax
cmp ecx, 1
jb 0x474748
ja 0x474761
test eax, eax
je 0x474748
mov eax, 0x400000
mov dword [esi + 0xc], 0x400000
mov dword [esi + 0x9504], eax
jmp case.0x473f16.78
mov eax, dword [esi + 0xc]
mov dword [esi + 0x9504], eax
jmp case.0x473f16.78
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
cmp eax, 0x5a
jne 0x4747ab
movzx eax, word [edi + 6]
push eax
call fcn.004b4390
cmp eax, 0x4c
jne 0x4747ab
mov byte [esi + 0xd52f], 1
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
cmp eax, 0x53
jne case.0x473f16.78
cmp word [edi + 6], 0
jne case.0x473f16.78
mov byte [esi + 0x612b], 1
jmp case.0x473f16.78
add edi, 4
cmp word [edi], 0
jne 0x4747e3
mov edi, str.7z_ace_arj_bz2_cab_gz_jpeg_jpg_lha_lz_lzh_mp3_rar_taz_tgz_xz_z_zip_zipx
push 0x400
push edi
lea eax, [esp + 0x2c]
push eax
call fcn.004b0360
cmp word [esp + 0x24], 0
lea edi, [esp + 0x24]
je case.0x473f16.78
lea ebx, [esi + 0xf6dc]
lea esp, [esp]
push 0x3b
push edi
call fcn.0051f225
mov esi, eax
add esp, 8
test esi, esi
je 0x474826
xor eax, eax
mov word [esi], ax
cmp word [edi], 0x2e
jne 0x47482f
add edi, 2
push 0x551e48
push edi
call fcn.0052a6fe
add esp, 8
test eax, eax
lea eax, [esp + 0x824]
jne 0x47485e
push edi
push str.._ls
push 0x800
push eax
call fcn.00402c90
add esp, 0x10
jmp 0x47486a
push 0x800
push edi
push eax
call fcn.004b0360
lea eax, [esp + 0x824]
mov ecx, ebx
push eax
call fcn.004b0450
test esi, esi
je case.0x473f16.78
cmp word [esi + 2], 0
lea edi, [esi + 2]
jne 0x474810
jmp case.0x473f16.78
lea eax, [edi + 4]
push eax
call fcn.004b42d0
mov dword [esi + 0x94f8], eax
dec eax
cmp eax, 0x3f
ja case.0x473f16.69
mov byte [esi + 0x94fc], 1
jmp case.0x473f16.78
movzx eax, word [edi + 2]
sub eax, 0x30
mov dword [esi + 0x713c], eax
cmp eax, 5
jg case.0x473f16.69
test eax, eax
jns case.0x473f16.78
push edi
mov ecx, esi
call fcn.00473080
jmp case.0x473f16.78
cmp word [edi + 2], 0
lea ebx, [edi + 2]
je case.0x473f16.78
movzx eax, word [edi]
push eax
call fcn.004b4390
sub eax, 0x4e
lea ebp, [esi + 0xf61c]
neg eax
sbb eax, eax
and eax, 0xffffffa0
add ebp, eax
cmp word [ebx], 0x40
jne 0x474930
push edi
call fcn.00495040
test al, al
jne 0x474930
push 1
push 1
push 1
push dword [esi + 0x401c]
lea eax, [edi + 4]
push 1
push 0
push ebp
push eax
call fcn.00484ba0
jmp case.0x473f16.78
push ebx
mov ecx, ebp
call fcn.004b0450
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x57
ja case.0x473f16.69
movzx eax, byte [eax + 0x475778]
jmp dword [eax*4 + 0x475744]
mov dword [esi + 0x7138], 1
jmp case.0x473f16.78
mov dword [esi + 0x7138], 2
jmp case.0x473f16.78
mov dword [esi + 0x7138], 4
jmp case.0x473f16.78
mov byte [esi + 0x73c5], 1
jmp case.0x473f16.78
mov byte [esi + 0x719e], 1
jmp case.0x473f16.78
movzx eax, word [edi + 4]
add edi, 4
add eax, 0xffffffd3
cmp eax, 5
ja case.0x4749b2.46
jmp dword [eax*4 + 0x4757d0]
mov dword [esi + 0x71b4], 0
jmp 0x4749db
mov dword [esi + 0x71b4], 2
jmp 0x4749db
mov dword [esi + 0x71b4], 1
push 0x3a
push edi
call fcn.0051f225
add esp, 8
test eax, eax
je case.0x473f16.78
add eax, 2
push eax
call fcn.004b4240
mov dword [esi + 0x71b8], eax
mov dword [esi + 0x71bc], edx
jmp case.0x473f16.78
mov byte [esi + 0x719d], 1
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
cmp eax, 0x41
jne case.0x473f16.78
mov byte [esi + 0x719f], 1
jmp case.0x473f16.78
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
cmp eax, 0x49
jne case.0x473f16.78
mov byte [esi + 0x71ab], 1
jmp case.0x473f16.78
add esi, 0x2016
lea eax, [edi + 4]
jmp 0x47546d
mov dword [esi + 0x7138], 3
jmp case.0x473f16.78
mov byte [esi + 0x73c4], 1
jmp case.0x473f16.78
mov byte [esi + 0x719c], 1
jmp case.0x473f16.78
cmp word [edi + 2], 0
lea ebx, [edi + 2]
jne 0x474ac2
lea eax, [esi + 0xd52f]
push eax
lea eax, [esi + 0x612a]
add esi, 0x6028
push eax
push esi
call fcn.004031e0
test al, al
jne case.0x473f16.78
push 0xff
mov ecx, 0x5b68fc
call fcn.0047aed0
jmp case.0x473f16.78
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x474ac7
sub ecx, edx
sar ecx, 1
cmp ecx, 0x80
jb 0x474ae7
push 0x7f
push 0x63
call fcn.00472dc0
push ebx
lea ecx, [esi + 0x6028]
call fcn.004ad7b0
mov ecx, edi
lea edx, [ecx + 2]
jmp 0x474b00
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x474b00
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
push eax
push edi
call fcn.004ad810
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x4f
jne case.0x473f16.69
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
sub eax, 0
je 0x474b68
sub eax, 0x2b
je 0x474b59
sub eax, 2
jne case.0x473f16.69
mov dword [esi + 0x2010], eax
jmp case.0x473f16.78
mov dword [esi + 0x2010], 2
jmp case.0x473f16.78
mov dword [esi + 0x2010], 1
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x56
ja case.0x473f16.78
movzx eax, byte [eax + 0x475804]
jmp dword [eax*4 + 0x4757e8]
mov dword [esi + 0x7168], 2
jmp case.0x473f16.78
mov dword [esi + 0x7168], 1
jmp case.0x473f16.78
mov dword [esi + 0x7168], 3
jmp case.0x473f16.78
push 0xfffffffffffffffd
lea eax, [edi + 4]
mov ecx, esi
push eax
push edi
call fcn.00473440
mov dword [esi + 0x7144], eax
jmp case.0x473f16.78
push 0xfffffffffffffff6
lea eax, [edi + 4]
mov ecx, esi
push eax
push edi
call fcn.00473440
mov dword [esi + 0x7148], eax
jmp case.0x473f16.78
lea ebx, [edi + 4]
push ebx
call fcn.004b42d0
mov dword [esi + 0x71a0], eax
test eax, eax
js 0x474c0f
cmp eax, 0xf
jle 0x474c17
push edi
mov ecx, esi
call fcn.00473080
push 0x3a
push ebx
call fcn.0051f225
add esp, 8
test eax, eax
je 0x474c4f
add eax, 2
push eax
call fcn.004b42d0
mov dword [esi + 0x71a4], eax
cmp eax, 0x3e8
jle 0x474c44
push edi
mov ecx, esi
call fcn.00473080
push dword [esi + 0x71a4]
call fcn.004b0d00
push dword [esi + 0x71a0]
call fcn.004b0e80
jmp case.0x473f16.78
push 3
push 0x551e5c
push edi
call fcn.004b4460
test eax, eax
jne 0x474cbc
cmp word [edi + 6], ax
lea ebx, [edi + 6]
jne 0x474c7e
mov ebx, str.default.sfx
push ebx
call fcn.00495850
cmp eax, ebx
jne 0x474caa
push ebx
call fcn.004837b0
test al, al
jne 0x474caa
push 0
push 1
push 0x800
lea eax, [esi + 0x1010]
push eax
push ebx
call fcn.00494760
jmp 0x474cbc
push 0x800
push ebx
lea eax, [esi + 0x1010]
push eax
call fcn.004b0360
movzx eax, word [edi + 2]
lea ebx, [edi + 2]
push eax
call fcn.004aff30
test al, al
je 0x474ce5
or dword [esi + 0x7154], 2
push ebx
call fcn.004b42d0
mov dword [esi + 0x7158], eax
jmp case.0x473f16.78
movzx eax, word [ebx]
push eax
call fcn.004b4390
cmp eax, 0x56
ja case.0x473f16.78
movzx eax, byte [eax + 0x475880]
jmp dword [eax*4 + 0x47585c]
or dword [esi + 0x7154], 1
jmp case.0x473f16.78
mov dword [esi + 0x7154], 0
jmp case.0x473f16.78
or dword [esi + 0x7154], 4
jmp case.0x473f16.78
xor eax, eax
cmp word [edi + 4], 0x2d
setne al
lea eax, [eax*8 + 8]
or dword [esi + 0x7154], eax
jmp case.0x473f16.78
or dword [esi + 0x7154], 8
jmp case.0x473f16.78
movzx eax, word [edi + 4]
add edi, 4
push eax
call fcn.004aff30
test al, al
je case.0x473f16.78
push edi
call fcn.004b4240
mov dword [esi + 0x7408], eax
mov dword [esi + 0x740c], edx
jmp case.0x473f16.78
movzx eax, word [edi + 4]
add edi, 4
push eax
call fcn.004aff30
test al, al
je case.0x473f16.78
push edi
call fcn.004b4240
mov dword [esi + 0x7410], eax
mov dword [esi + 0x7414], edx
jmp case.0x473f16.78
movzx eax, word [edi + 4]
push eax
mov byte [esp + 0x17], 0
call fcn.004b4390
add eax, 0xffffffbf
cmp eax, 0x14
ja case.0x473f16.69
movzx eax, byte [eax + 0x4758ec]
jmp dword [eax*4 + 0x4758d8]
mov ebx, 1
jmp 0x474def
mov ebx, 2
jmp 0x474def
mov ebx, 3
jmp 0x474def
mov ebx, 4
cmp word [edi + 6], 0
lea ebp, [edi + 6]
jne 0x474e16
mov dword [esi + 0x4024], ebx
mov dword [esi + 0x4020], ebx
mov dword [esi + 0x401c], ebx
mov dword [esi + 0x4018], ebx
jmp case.0x473f16.78
mov al, byte [esp + 0x13]
lea ebx, [ebx]
test al, al
jne case.0x473f16.78
movzx eax, word [ebp]
push eax
call fcn.004b4390
add eax, 0xffffffbd
cmp eax, 0xf
ja case.0x474e41.68
movzx eax, byte [eax + 0x475918]
jmp dword [eax*4 + 0x475904]
mov al, byte [esp + 0x13]
mov dword [esi + 0x4018], ebx
jmp 0x474eff
mov al, byte [esp + 0x13]
mov dword [esi + 0x401c], ebx
jmp 0x474eff
mov al, byte [esp + 0x13]
mov dword [esi + 0x4020], ebx
jmp 0x474eff
mov al, byte [esp + 0x13]
mov dword [esi + 0x4024], ebx
jmp 0x474eff
cmp byte [esi + 0x7190], 0
mov edx, edi
jne 0x474ef9
cmp dword [esi + 0x7130], 3
je 0x474ef9
mov ecx, edi
lea eax, [ecx + 2]
mov dword [esp + 0x18], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x474ea1
sub ecx, dword [esp + 0x18]
sar ecx, 1
cmp ecx, 0x880
jb 0x474ebf
mov edx, str._unk_
push edx
push 0x372
call fcn.004a9c90
push eax
lea eax, [esp + 0x82c]
push 0x880
push eax
call fcn.00402c90
add esp, 0x10
push 0x10
push 0x66
call fcn.004a9c90
push eax
lea eax, [esp + 0x82c]
push eax
push 0
call fcn.004edd90
mov al, 1
mov byte [esp + 0x13], al
add ebp, 2
cmp word [ebp], 0
jne 0x474e20
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
cmp eax, 0x56
ja case.0x473f16.69
movzx eax, byte [eax + 0x475954]
jmp dword [eax*4 + 0x475928]
mov dword [esi + 0x7194], 1
jmp case.0x473f16.78
mov dword [esi + 0x7194], 2
jmp case.0x473f16.78
push 1
push 1
lea eax, [edi + 4]
mov ecx, esi
push eax
call fcn.00475d80
jmp case.0x473f16.78
push 1
push 0
lea eax, [edi + 4]
mov ecx, esi
push eax
call fcn.00475d80
jmp case.0x473f16.78
push 0
push 1
lea eax, [edi + 4]
mov ecx, esi
push eax
call fcn.00475d80
jmp case.0x473f16.78
push 0
push 0
lea eax, [edi + 4]
mov ecx, esi
push eax
call fcn.00475d80
jmp case.0x473f16.78
movzx eax, word [edi + 4]
lea ebx, [edi + 4]
test ax, ax
je 0x474fc6
push eax
call fcn.004aff30
test al, al
jne 0x474fc6
movzx eax, word [ebx]
cmp eax, 0x2d
je 0x474fc6
mov ecx, eax
cmp eax, 0x2b
jne 0x474ff7
movzx eax, word [ebx]
xor ecx, ecx
cmp eax, 0x2d
sete cl
dec ecx
and ecx, 2
cmp eax, 0x31
jne 0x474fdf
mov ecx, 1
add ebx, 2
mov dword [esi + 0x84f0], ecx
mov dword [esi + 0x84ec], ecx
mov dword [esi + 0x84e8], ecx
movzx ecx, word [ebx]
test cx, cx
je case.0x473f16.78
movzx eax, word [ebx + 2]
mov edi, 2
cmp eax, 0x2d
jne 0x475012
xor edi, edi
jmp 0x47501a
cmp eax, 0x31
jne 0x47501a
lea edi, [eax - 0x30]
movzx eax, word [ebx]
push eax
call fcn.004b4390
add eax, 0xffffffbf
cmp eax, 0xf
ja case.0x475032.66
movzx eax, byte [eax + 0x4759c0]
jmp dword [eax*4 + 0x4759ac]
mov dword [esi + 0x84e8], edi
jmp case.0x475032.66
mov dword [esi + 0x84ec], edi
jmp case.0x475032.66
mov dword [esi + 0x84f0], edi
jmp case.0x475032.66
mov byte [esi + 0x84f4], 1
add ebx, 2
cmp word [ebx], 0
jne 0x475000
jmp case.0x473f16.78
mov byte [esi + 0x7419], 0
jmp case.0x473f16.78
mov byte [esi + 0x7419], 1
jmp case.0x473f16.78
cmp word [edi + 2], 0
jne case.0x473f16.69
mov byte [esi + 0x7160], 1
jmp case.0x473f16.78
movzx eax, word [edi + 2]
push eax
call fcn.004b4390
add eax, 0xffffffd3
cmp eax, 0x23
ja case.0x4750ae.46
movzx eax, byte [eax + 0x4759e8]
jmp dword [eax*4 + 0x4759d0]
mov byte [esi + 0x71ad], 1
jmp case.0x473f16.78
mov byte [esi + 0x71b0], 1
jmp case.0x473f16.78
mov byte [esi + 0x741b], 1
jmp case.0x473f16.78
movzx eax, word [edi + 4]
push eax
call fcn.004b4390
cmp eax, 0x52
jne case.0x473f16.78
lea eax, [edi + 6]
push eax
call fcn.004b42d0
inc eax
mov dword [esi + 0x84dc], eax
jmp case.0x473f16.78
mov dword [esi + 0x7170], 0
mov dword [esi + 0x7174], 0
jmp case.0x473f16.78
cmp byte [esi + 0xd539], 0
jne 0x475149
lea ecx, [esi + 0x7178]
mov dword [esi + 0x7170], 0
mov dword [esi + 0x7174], 0
call fcn.0040d250
mov byte [esi + 0xd539], 1
movzx eax, word [edi + 2]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1c], ecx
xor ebx, ebx
mov dword [esp + 0x14], edx
xor ebp, ebp
mov dword [esp + 0x18], 1
mov ecx, eax
test ax, ax
je 0x475325
lea esi, [ebx + 2]
movzx eax, cx
push eax
call fcn.004aff30
movzx edx, word [esi + edi]
test al, al
je 0x4751cd
mov esi, dword [esp + 0x14]
mov eax, ebx
mov ecx, ebp
shld ecx, eax, 2
shl eax, 2
add ebx, eax
mov eax, edx
cdq
adc ebp, ecx
mov ecx, esi
shld ebp, ebx, 1
add ebx, ebx
add ebx, eax
adc ebp, edx
mov edx, dword [esp + 0x1c]
sub ebx, 0x30
mov eax, edx
sbb ebp, 0
shld ecx, eax, 2
shl eax, 2
add edx, eax
adc esi, ecx
shld esi, edx, 1
add edx, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
jmp 0x4751e2
cmp edx, 0x2e
jne 0x4751e2
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
lea esi, [eax + eax]
movzx eax, word [edi + esi]
mov ecx, eax
test ax, ax
jne 0x475173
mov esi, dword [esp + 0x20]
mov eax, ebx
or eax, ebp
je 0x475325
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x475210
sub ecx, edx
sar ecx, 1
movzx eax, word [edi + ecx*2 - 2]
add eax, 0xffffffbe
cmp eax, 0x2b
ja case.0x475237.67
movzx eax, byte [eax + 0x475a2c]
jmp dword [eax*4 + 0x475a0c]
test ebp, ebp
jl case.0x475237.66
jg case.0x475237.66
cmp ebx, 0x168
jb case.0x475237.66
test ebp, ebp
jg case.0x475237.66
jl 0x47526e
cmp ebx, 0xb40
ja case.0x475237.66
cmp ebx, 0x4b0
jg 0x4752a7
je 0x47529e
cmp ebx, 0x168
je 0x475295
cmp ebx, 0x2d0
jne case.0x475237.66
mov ebx, 0xb2400
xor ebp, ebp
jmp case.0x475237.66
mov ebx, 0x58800
xor ebp, ebp
jmp case.0x475237.66
mov ebx, 0x128600
xor ebp, ebp
jmp case.0x475237.66
cmp ebx, 0x5a0
je 0x4752c0
cmp ebx, 0xb40
jne case.0x475237.66
mov ebx, 0x2c7c00
xor ebp, ebp
jmp case.0x475237.66
mov ebx, 0x163e00
xor ebp, ebp
jmp case.0x475237.66
shld ebp, ebx, 0xa
shl ebx, 0xa
jmp case.0x475237.66
shld ebp, ebx, 0x14
shl ebx, 0x14
jmp case.0x475237.66
push 0
push 0xf4240
jmp 0x4752fd
shld ebp, ebx, 0x1e
shl ebx, 0x1e
jmp case.0x475237.66
push 0
push 0x3b9aca00
jmp 0x4752fd
push 0
push 0x3e8
push ebp
push ebx
call fcn.0051dec0
mov ebx, eax
mov ebp, edx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov edx, dword [esp + 0x14]
or eax, edx
je 0x47532c
push edx
push ecx
push ebp
push ebx
call fcn.0051dcf0
mov ebx, eax
mov ebp, edx
jmp 0x47532c
mov ebx, SysReAllocString
mov ebp, ebx
mov eax, dword [esi + 0x7170]
or eax, dword [esi + 0x7174]
jne 0x47534b
mov dword [esi + 0x7170], ebx
mov dword [esi + 0x7174], ebp
jmp case.0x473f16.78
mov eax, dword [esi + 0x717c]
inc eax
mov dword [esi + 0x717c], eax
cmp eax, dword [esi + 0x7180]
jbe 0x47542e
mov ecx, dword [esi + 0x7184]
test ecx, ecx
je 0x47538f
cmp eax, ecx
jbe 0x47538f
push ecx
push str.Maximum_allowed_array_size___u__is_exceeded
push 0x5b68fc
call fcn.0047af10
add esp, 0xc
mov ecx, 0x5b68fc
call fcn.0047b030
mov ecx, dword [esi + 0x7180]
mov eax, ecx
shr eax, 2
add eax, 0x20
add ecx, eax
mov eax, dword [esi + 0x717c]
mov dword [esp + 0x18], eax
cmp eax, ecx
ja 0x4753b3
mov eax, ecx
mov dword [esp + 0x18], ecx
shl eax, 3
cmp byte [esi + 0x7188], 0
push eax
je 0x475447
call fcn.00525bb0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4753e2
mov ecx, 0x5b68fc
call fcn.0047b030
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x7178]
test ecx, ecx
je 0x47541a
mov edi, dword [esi + 0x7180]
shl edi, 3
push edi
push ecx
push eax
call fcn.0051f6b0
add esp, 0xc
push edi
push dword [esi + 0x7178]
call fcn.004ad810
push dword [esi + 0x7178]
call fcn.00525b95
add esp, 4
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esi + 0x7178], edi
mov dword [esi + 0x7180], eax
mov ecx, dword [esi + 0x7178]
mov eax, dword [esi + 0x717c]
mov dword [ecx + eax*8 - 8], ebx
mov dword [ecx + eax*8 - 4], ebp
jmp case.0x473f16.78
push dword [esi + 0x7178]
call fcn.00525bbb
mov edi, eax
add esp, 8
test edi, edi
jne 0x47541e
mov ecx, 0x5b68fc
call fcn.0047b030
jmp 0x47541e
add esi, 0x10
lea eax, [edi + 2]
push 0x800
push eax
push esi
call fcn.004b0360
push 0x800
push esi
call fcn.00493970
jmp case.0x473f16.78
mov byte [esi + 0x7190], 1
jmp case.0x473f16.78
add edi, 2
cmp word [edi], 0
je case.0x473f16.78
push 0x800
push edi
add esi, 0x3016
push esi
call fcn.004b0360
jmp case.0x473f16.78
cmp byte [esi + 0x7190], 0
jne case.0x473f16.78
cmp dword [esi + 0x7130], 3
je case.0x473f16.78
mov ecx, edi
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4754d0
sub ecx, edx
sar ecx, 1
cmp ecx, 0x880
jb 0x4754ec
mov edi, str._unk_
push edi
push 0x372
call fcn.004a9c90
push eax
lea eax, [esp + 0x82c]
push 0x880
push eax
call fcn.00402c90
add esp, 0x10
push 0x10
push 0x66
call fcn.004a9c90
push eax
lea eax, [esp + 0x82c]
push eax
push 0
call fcn.004edd90
pop ebp
pop ebx
mov ecx, dword [esp + 0x191c]
pop edi
pop esi
xor ecx, esp
call fcn.0051dca8
add esp, 0x1918
ret 4