Function at 0x4028fd
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x70
test ecx, ecx
je 0x402926
mov edx, dword [ecx + 4]
mov esi, ecx
cmp edx, 1
jg 0x402926
mov eax, dword [eax + 0x11c]
cmp eax, 0x400
jle 0x402935
mov dword [edi + 0x118], 1
jmp 0x404137
inc eax
inc edx
mov dword [esp + 0x20], ecx
mov dword [ecx + 4], edx
mov dword [edi + 0x11c], eax
mov eax, dword [edi + 0x12c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
mov dword [edi + 0x12c], eax
mov eax, dword [edi + 0x118]
mov dword [esp + 0x1c], eax
test eax, eax
jne case.default.0x403bd3
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
cmp eax, 0x5f
ja case.0x402979.45
jmp dword [eax*4 + 0x48305c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call sym._d_append_buffer
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, edi
mov edx, str._abi:
call sym._d_append_string
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x5d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov edx, 0x5b
mov eax, edi
mov ebx, esi
call sym._d_append_char
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x402a87
mov edx, 0x482da6
mov eax, edi
call sym._d_append_string
jmp 0x4029db
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0x28
jne 0x403c83
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x403b8b
test ebx, ebx
jne 0x403b99
mov edx, 0x28
mov eax, edi
call sym._d_append_char
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov edx, 0x29
mov eax, edi
call sym._d_append_char
cmp dword [esi], 0x3f
jne 0x402a5e
mov edx, 0x2d
mov eax, edi
call sym._d_append_char
cmp ebx, 8
jne 0x402a6f
mov edx, 0x5b
mov eax, edi
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp ebx, 8
jne case.default.0x403bd3
mov edx, 0x5d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, edi
mov edx, 0x40
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x402ada
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp dword [esi], 0x56
je 0x402aec
cmp dword [esi + 0xc], 0
mov edx, 0x2e
jne 0x402af1
jmp 0x402af8
mov edx, 0x3a
mov eax, edi
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov edx, 0x482da9
mov eax, edi
call sym._d_append_string
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
jne 0x402b57
mov edx, str.default_arg
mov eax, edi
call sym._d_append_string
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call sym._d_append_num
mov edx, 0x482dba
mov eax, edi
call sym._d_append_string
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, dword [edi + 0x114]
mov ebx, dword [ecx + 0xc]
lea edx, [esp + 0x30]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [edi + 0x114], eax
xor eax, eax
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x402b94
cmp dword [esp + 0x1c], 4
jne 0x402ba3
mov dword [edi + 0x118], 1
jmp case.default.0x403bd3
mov eax, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
mov dword [edi + 0x114], edx
add edx, 0x10
mov dword [edx - 0xc], ebx
mov dword [edx - 0x10], eax
xor eax, eax
mov dword [edx - 8], eax
mov eax, dword [ebx]
mov dword [edx - 4], ecx
inc dword [esp + 0x1c]
mov dword [esp + 0x18], eax
call sym._is_fnqual_component_type
test eax, eax
jne 0x402be2
cmp dword [esp + 0x18], 2
jne 0x402c3e
jmp 0x402be7
mov ebx, dword [ebx + 0xc]
jmp 0x402b89
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
jne 0x402bf2
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
shl eax, 4
lea edx, [esp + eax + 0x30]
test ebx, ebx
je 0x402b94
mov eax, dword [ebx]
call sym._is_fnqual_component_type
test eax, eax
je 0x402c3e
cmp dword [esp + 0x1c], 4
je 0x402b94
movups xmm0, xmmword [edx - 0x10]
lea eax, [edx - 0x10]
mov dword [edx - 0xc], ebx
mov dword [edi + 0x114], edx
add edx, 0x10
movups xmmword [edx - 0x10], xmm0
mov dword [edx - 0x10], eax
xor eax, eax
mov dword [edx - 0x18], eax
mov ebx, dword [ebx + 0xc]
mov dword [edx - 0x14], ecx
inc dword [esp + 0x1c]
jmp 0x402bfd
cmp dword [ebx], 4
jne 0x402c6c
lea eax, [esp + 0x28]
mov dword [esp + 0x28], ecx
mov dword [edi + 0x110], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x2c], ebx
cmp dword [eax], 0x5e
jne 0x402c6c
mov edx, dword [eax + 0xc]
mov dword [ebx + 0x10], edx
mov edx, dword [esi + 0x10]
mov dword [eax + 0xc], edx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp dword [ebx], 4
jne 0x402c8a
mov eax, dword [esp + 0x28]
mov dword [edi + 0x110], eax
mov ebx, dword [esp + 0x1c]
shl ebx, 4
cmp dword [esp + ebx + 0x28], 0
jne 0x402cb4
mov edx, 0x20
mov eax, edi
call sym._d_append_char
mov ecx, dword [esp + ebx + 0x24]
mov edx, 0x11
mov eax, edi
call sym._d_print_mod
sub ebx, 0x10
jne 0x402c91
mov eax, dword [esp + 0x14]
mov dword [edi + 0x114], eax
jmp case.default.0x403bd3
mov eax, dword [edi + 0x148]
mov ebx, dword [edi + 0x114]
mov dword [edi + 0x148], ecx
mov edx, 0x11
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [edi + 0x114], eax
mov eax, edi
call sym._d_print_comp
cmp byte [edi + 0x104], 0x3c
jne 0x402d0a
mov edx, 0x20
mov eax, edi
call sym._d_append_char
mov edx, 0x3c
mov eax, edi
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp byte [edi + 0x104], 0x3e
jne 0x402d3a
mov edx, 0x20
mov eax, edi
call sym._d_append_char
mov eax, edi
mov edx, 0x3e
call sym._d_append_char
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], ebx
mov dword [edi + 0x148], eax
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, dword [edi + 0x120]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x402db4
mov eax, dword [edi + 0x110]
mov edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x402d97
test edx, edx
je 0x402d87
mov eax, dword [eax + 0x10]
dec edx
jmp 0x402d79
test eax, eax
je 0x402d97
cmp dword [eax], 0x5d
jne 0x402da6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x402da6
mov dword [edi + 0x118], 1
jmp case.default.0x403bd3
mov edx, dword [eax]
mov eax, edi
call sym._d_print_lambda_parm_name
jmp case.default.0x403bd3
test eax, eax
je 0x402ddb
mov eax, edi
mov ecx, 5
mov edx, str.auto:
call sym._d_append_buffer
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call sym._d_append_num
jmp case.default.0x403bd3
mov edx, esi
mov eax, edi
call sym._d_lookup_template_argument
test eax, eax
je 0x402d97
cmp dword [eax], 0x30
jne 0x402dfc
mov edx, dword [edi + 0x124]
call sym._d_index_template_argument
test eax, eax
je 0x402d97
mov ebx, dword [edi + 0x110]
mov ecx, eax
mov eax, edi
mov edx, dword [ebx]
mov dword [edi + 0x110], edx
mov edx, 0x11
call sym._d_print_comp
mov dword [edi + 0x110], ebx
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.template_parameter_object_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, 0x7e
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.initializer_for_module
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.vtable_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.VTT_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.construction_vtable_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, edi
mov edx, str._in_
call sym._d_append_string
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.typeinfo_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.typeinfo_name_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.typeinfo_fn_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.non_virtual_thunk_to
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.virtual_thunk_to
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.covariant_return_thunk_to
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.java_Class_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.guard_variable_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.TLS_init_function_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.TLS_wrapper_function_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.reference_temporary_
call sym._d_append_string
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, edi
mov edx, str._for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.hidden_alias_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.transaction_clone_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.non_transaction_clone_for
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call sym._d_append_buffer
jmp case.default.0x403bd3
mov ecx, dword [edi + 0x114]
test ecx, ecx
je 0x40324c
cmp dword [ecx + 8], 0
jne 0x40313e
mov eax, dword [ecx + 4]
mov eax, dword [eax]
lea edx, [eax - 0x19]
cmp edx, 2
ja 0x403250
cmp dword [esp + 0x18], eax
jne 0x40313e
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx]
jmp 0x403105
cmp dword [edi + 0x120], 0
mov ebx, dword [ecx + 0xc]
jne 0x403237
xor ecx, ecx
cmp dword [ebx], 5
mov dword [esp + 0x1c], ecx
jne 0x403237
mov eax, dword [edi + 0x134]
xor edx, edx
cmp edx, eax
jge 0x4031b7
mov ecx, dword [edi + 0x130]
lea ecx, [ecx + edx*8]
cmp ebx, dword [ecx]
je 0x40317d
inc edx
jmp 0x403169
lea eax, [esp + 0x20]
mov edx, dword [eax]
cmp ebx, edx
je 0x4031f2
cmp esi, edx
jne 0x403193
lea edx, [esp + 0x20]
cmp eax, edx
jne 0x4031f2
mov eax, dword [eax + 4]
test eax, eax
jne 0x403181
mov eax, dword [edi + 0x110]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0x110], eax
jmp 0x4031f8
cmp eax, dword [edi + 0x138]
jge 0x4040f6
mov edx, dword [edi + 0x130]
lea edx, [edx + eax*8]
inc eax
mov dword [edi + 0x134], eax
lea eax, [edx + 4]
mov dword [esp + 0x1c], eax
mov dword [edx], ebx
mov edx, dword [edi + 0x110]
test edx, edx
jne 0x404102
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [eax], edx
xor eax, eax
mov dword [esp + 0x1c], eax
mov edx, ebx
mov eax, edi
call sym._d_lookup_template_argument
mov ebx, eax
test eax, eax
je 0x40321d
cmp dword [eax], 0x30
jne 0x403237
mov edx, dword [edi + 0x124]
call sym._d_index_template_argument
mov ebx, eax
test eax, eax
jne 0x403237
cmp dword [esp + 0x1c], 0
je 0x402d97
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp 0x402d97
mov eax, dword [ebx]
cmp eax, 0x24
je 0x403258
cmp dword [esp + 0x18], eax
je 0x403258
cmp eax, 0x25
jne case.0x402979.28
mov ecx, dword [ebx + 0xc]
mov ebx, esi
jmp 0x40325a
xor eax, eax
mov dword [esp + 0x1c], eax
mov ebx, esi
xor ecx, ecx
mov eax, dword [edi + 0x114]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov dword [edi + 0x114], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x3c], eax
test ecx, ecx
jne 0x403289
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp dword [esp + 0x38], 0
jne 0x4032aa
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_mod
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
mov dword [edi + 0x114], eax
je case.default.0x403bd3
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp case.default.0x403bd3
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call sym._d_append_buffer
jmp case.default.0x403bd3
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call sym._d_append_buffer
movsx edx, word [esi + 0x10]
mov eax, edi
call sym._d_append_num
cmp byte [esi + 0x12], 0
je case.default.0x403bd3
lea edx, [esi + 0x12]
mov ecx, 1
mov eax, edi
call sym._d_append_buffer
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x40338a
mov eax, dword [edi + 0x114]
mov dword [esp + 0x34], esi
mov edx, 0x11
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov dword [edi + 0x114], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x3c], eax
mov eax, edi
call sym._d_print_comp
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x403bd3
mov edx, 0x20
mov eax, edi
call sym._d_append_char
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call sym._d_print_function_type
jmp case.default.0x403bd3
mov eax, dword [edi + 0x114]
mov dword [esp + 0x34], ecx
mov ebx, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov dword [edi + 0x114], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x403435
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
ja 0x403435
cmp dword [eax + 8], 0
jne 0x403431
cmp ebx, 3
jbe 0x403406
mov dword [edi + 0x118], 1
jmp case.default.0x403bd3
movups xmm0, xmmword [eax]
mov ecx, dword [edi + 0x114]
mov edx, ebx
inc ebx
shl edx, 4
movups xmmword [esp + edx + 0x30], xmm0
mov dword [esp + edx + 0x30], ecx
lea ecx, [esp + 0x30]
add edx, ecx
mov dword [edi + 0x114], edx
mov dword [eax + 8], 1
mov eax, dword [eax]
jmp 0x4033db
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x403bd3
cmp ebx, 1
jbe 0x403476
dec ebx
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esp + eax + 0x34]
mov eax, edi
call sym._d_print_mod
jmp 0x403459
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call sym._d_print_array_type
jmp case.default.0x403bd3
mov eax, dword [edi + 0x114]
xor ebx, ebx
mov dword [esp + 0x34], ecx
mov edx, 0x11
mov dword [esp + 0x38], ebx
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x3c], eax
mov eax, edi
call sym._d_print_comp
cmp dword [esp + 0x38], 0
jne 0x4034de
mov ecx, esi
mov edx, 0x11
mov eax, edi
call sym._d_print_mod
mov eax, dword [esp + 0x30]
mov dword [edi + 0x114], eax
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x403500
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp dword [esi + 0x10], 0
je case.default.0x403bd3
cmp dword [edi + 0x100], 0xfd
jbe 0x40351d
mov eax, edi
call sym._d_print_flush
mov edx, 0x482da6
mov eax, edi
call sym._d_append_string
mov eax, dword [edi + 0x128]
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov ebx, dword [edi + 0x100]
mov dword [esp + 0x1c], eax
mov eax, edi
call sym._d_print_comp
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi + 0x128]
jne case.default.0x403bd3
cmp ebx, dword [edi + 0x100]
jne case.default.0x403bd3
sub ebx, 2
mov dword [edi + 0x100], ebx
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esi + 0x10]
test ecx, ecx
je 0x403588
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov eax, edi
mov edx, 0x7b
call sym._d_append_char
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x7d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov ebx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x482f58
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
call sym._d_append_string
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov al, byte [eax]
sub eax, 0x61
cmp al, 0x19
ja 0x4035e9
mov edx, 0x20
mov eax, edi
call sym._d_append_char
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
cmp byte [edx + ecx - 1], 0x20
jne 0x4035f4
dec ecx
mov eax, edi
call sym._d_append_buffer
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.operator
call sym._d_append_string
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.operator
call sym._d_append_string
mov eax, dword [edi + 0x148]
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x403651
mov edx, dword [edi + 0x110]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
lea edx, [esp + 0x30]
mov dword [edi + 0x110], edx
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp dword [edi + 0x148], 0
je case.default.0x403bd3
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_expr_op
jmp case.default.0x403bd3
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, 0x33
jne 0x40379b
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], 0x482f6b
mov dword [esp], eax
mov dword [esp + 0x1c], eax
call sym._strcmp
mov edx, eax
mov eax, dword [ebx]
test edx, edx
jne 0x4036e0
cmp eax, 3
jne 0x4036e0
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jne 0x403709
mov edx, dword [ebx + 0x10]
cmp dword [edx], 0x2a
jne 0x403709
mov ebx, eax
jmp 0x403709
cmp eax, 0x3a
jne 0x403709
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_subexpr
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call sym._d_print_expr_op
jmp case.default.0x403bd3
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482f6e
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x40373d
mov edx, ebx
mov eax, edi
call sym._d_find_pack
call sym._d_pack_length
mov edx, eax
mov eax, edi
call sym._d_append_num
jmp case.default.0x403bd3
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482f71
mov dword [esp], eax
call sym._strcmp
mov ecx, eax
test eax, eax
jne 0x4037a6
test ebx, ebx
je 0x40378d
cmp dword [ebx], 0x30
jne 0x40378d
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40378d
cmp dword [eax], 0x4d
jne 0x403787
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [esp + 0x1c], ecx
call sym._d_find_pack
call sym._d_pack_length
mov ecx, dword [esp + 0x1c]
add ecx, eax
jmp 0x403788
inc ecx
mov ebx, dword [ebx + 0x10]
jmp 0x403757
mov edx, ecx
mov eax, edi
call sym._d_append_num
jmp case.default.0x403bd3
cmp eax, 0x35
je 0x4037c2
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call sym._d_print_expr_op
cmp dword [esp + 0x1c], 0
jne 0x4037f2
jmp 0x403878
mov eax, edi
mov edx, 0x28
call sym._d_append_char
mov eax, dword [esp + 0x18]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call sym._d_print_comp
mov edx, 0x29
mov eax, edi
call sym._d_append_char
jmp 0x403878
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482f74
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x40381d
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482f77
mov dword [esp], eax
call sym._strcmp
test eax, eax
je 0x40384d
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482f7a
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x403878
mov eax, edi
mov edx, 0x28
call sym._d_append_char
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x29
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_subexpr
jmp case.default.0x403bd3
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3a
jne 0x402d97
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
call sym._op_is_new_cast.isra.0
test eax, eax
je 0x4038ff
mov eax, edi
mov edx, 0x11
call sym._d_print_expr_op
mov eax, edi
mov edx, 0x3c
call sym._d_append_char
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call sym._d_print_comp
mov eax, edi
mov edx, 0x482f7d
call sym._d_append_string
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call sym._d_print_comp
mov edx, 0x29
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov ecx, esi
mov edx, 0x11
mov eax, edi
call sym._d_maybe_print_fold_expression
test eax, eax
jne case.default.0x403bd3
mov ecx, esi
mov edx, 0x11
mov eax, edi
call sym._d_maybe_print_designated_init
test eax, eax
jne case.default.0x403bd3
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne 0x403950
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x403950
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x403950
mov edx, 0x28
mov eax, edi
call sym._d_append_char
mov dword [esp + 4], 0x482f80
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sym._strcmp
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0xc]
test eax, eax
jne 0x40398c
cmp dword [ecx], 3
jne 0x40398c
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x403989
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_subexpr
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
mov dword [esp + 4], 0x482f83
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sym._strcmp
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x4039e8
mov eax, edi
mov edx, 0x5b
call sym._d_append_char
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call sym._d_print_comp
mov edx, 0x5d
mov eax, edi
call sym._d_append_char
jmp 0x403a1c
mov dword [esp + 4], 0x482f80
mov dword [esp], edx
call sym._strcmp
test eax, eax
je 0x403a0a
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_expr_op
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call sym._d_print_subexpr
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne case.default.0x403bd3
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x403bd3
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x403bd3
mov edx, 0x29
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov dword [edi + 0x118], 1
jmp case.default.0x403bd3
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3c
jne 0x402d97
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne 0x402d97
mov edx, 0x11
mov eax, edi
call sym._d_maybe_print_fold_expression
test eax, eax
jne case.default.0x403bd3
mov ecx, esi
mov edx, 0x11
mov eax, edi
call sym._d_maybe_print_designated_init
test eax, eax
jne case.default.0x403bd3
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 4], 0x482f86
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sym._strcmp
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x403b29
mov eax, edi
mov edx, 0x11
call sym._d_print_subexpr
mov ecx, ebx
mov eax, edi
mov edx, 0x11
call sym._d_print_expr_op
mov ecx, dword [esp + 0x18]
mov eax, edi
mov edx, 0x11
call sym._d_print_subexpr
mov eax, edi
mov edx, 0x482f89
call sym._d_append_string
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call sym._d_print_subexpr
jmp case.default.0x403bd3
mov edx, str.new
mov eax, edi
mov dword [esp + 0x14], ecx
call sym._d_append_string
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x403b5b
mov edx, 0x11
mov eax, edi
call sym._d_print_subexpr
mov edx, 0x20
mov eax, edi
call sym._d_append_char
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
cmp dword [esp + 0x1c], 0
je case.default.0x403bd3
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call sym._d_print_subexpr
jmp case.default.0x403bd3
cmp ebx, 7
je 0x403c2f
jmp 0x402a26
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x402a26
cmp dword [esp + 0x18], 0x3f
jne 0x403bb8
mov edx, 0x2d
mov eax, edi
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
sub ebx, 2
call sym._d_print_comp
cmp ebx, 4
ja case.default.0x403bd3
jmp dword [ebx*4 + 0x4831dc]
mov edx, 0x75
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov edx, 0x6c
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov edx, 0x482f92
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov edx, 0x482f95
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov edx, 0x482f98
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x402a26
cmp dword [eax + 0x10], 1
jne 0x402a26
cmp dword [esp + 0x18], 0x3e
jne 0x402a26
mov eax, dword [eax + 0xc]
mov al, byte [eax]
cmp al, 0x30
je 0x403c72
cmp al, 0x31
jne 0x402a26
mov edx, 0x482fa2
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov edx, 0x482f9c
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
xor ebx, ebx
jmp 0x402a26
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, edi
mov edx, 0x28
call sym._d_append_char
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x29
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov edx, dword [ecx + 0xc]
mov eax, edi
call sym._d_append_num
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.java_resource
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
movsx edx, byte [ecx + 0xc]
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.decltype__
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x29
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov eax, dword [ecx + 0xc]
mov ebx, dword [edi + 0x120]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x403d85
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call sym._d_print_subexpr
mov edx, 0x482fc1
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov edx, dword [esp + 0x1c]
mov eax, edi
call sym._d_find_pack
test eax, eax
je 0x403d64
call sym._d_pack_length
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je case.default.0x403bd3
test ebx, ebx
je 0x403db7
mov edx, 0x482da6
mov eax, edi
call sym._d_append_string
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
inc ebx
call sym._d_print_comp
jmp 0x403d9d
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jne 0x403de8
mov edx, 0x482fc5
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.parm
call sym._d_append_string
mov edx, ebx
mov eax, edi
call sym._d_append_num
mov edx, 0x7d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.global_constructors_keyed_to
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.global_destructors_keyed_to
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
jmp case.default.0x403bd3
mov edx, str.lambda
mov eax, edi
call sym._d_append_string
mov eax, dword [esi + 0xc]
xor edx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x120]
cmp dword [esp + 0x1c], 0
mov dword [edi + 0x120], edx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov dword [edi + 0x110], eax
je 0x403f2d
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0x59
jne 0x403f2d
mov dword [esp + 0x34], eax
mov edx, 0x3c
mov eax, edi
call sym._d_append_char
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x403f16
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x403edd
mov edx, 0x482da6
mov eax, edi
call sym._d_append_string
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov edx, 0x20
mov eax, edi
call sym._d_append_char
cmp dword [ebx], 0x5d
jne 0x403eff
mov ebx, dword [ebx + 0xc]
mov eax, dword [edi + 0x120]
mov edx, dword [ebx]
lea ecx, [eax - 1]
mov eax, edi
call sym._d_print_lambda_parm_name
mov ebx, dword [ebx + 0x10]
jmp 0x403eba
mov eax, edi
mov edx, 0x3e
call sym._d_append_char
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x1c], eax
inc dword [edi + 0x120]
mov eax, edi
mov edx, 0x28
call sym._d_append_char
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, dword [esp + 0x18]
mov edx, 0x483014
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
mov eax, edi
call sym._d_append_string
mov eax, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, edi
call sym._d_append_num
mov edx, 0x7d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.unnamed_type
call sym._d_append_string
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call sym._d_append_num
mov edx, 0x7d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov eax, edi
mov edx, str.__clone
call sym._d_append_string
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x5d
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, str._friend_
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov eax, edi
mov edx, 0x3c
call sym._d_append_char
xor eax, eax
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x404055
cmp dword [esp + 0x1c], 0
je 0x40403e
mov edx, 0x482da6
mov eax, edi
call sym._d_append_string
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
inc dword [esp + 0x1c]
mov ebx, dword [ebx + 0x10]
jmp 0x404027
mov edx, 0x3e
mov eax, edi
call sym._d_append_char
jmp case.default.0x403bd3
mov edx, str.typename
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov eax, edi
mov edx, str.template
call sym._d_append_string
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, str._class
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call sym._d_print_comp
mov edx, 0x482fc1
mov eax, edi
call sym._d_append_string
jmp case.default.0x403bd3
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov edx, str._requires
mov eax, edi
call sym._d_append_string
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call sym._d_print_comp
mov eax, dword [esp + 0x24]
mov dword [edi + 0x12c], eax
dec dword [esi + 4]
dec dword [edi + 0x11c]
jmp 0x404137
mov dword [edi + 0x118], 1
jmp case.default.0x403bd3
mov eax, dword [edi + 0x140]
cmp eax, dword [edi + 0x144]
jge 0x4040f6
mov ecx, dword [edi + 0x13c]
lea ecx, [ecx + eax*8]
inc eax
mov dword [edi + 0x140], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
mov dword [eax], ecx
mov edx, dword [edx]
jmp 0x4031e2
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret