Function at 0x401cd5
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 0x401cfe
mov edx, dword [ecx + 4]
mov esi, ecx
cmp edx, 1
jg 0x401cfe
mov eax, dword [eax + 0x11c]
cmp eax, 0x400
jle 0x401d0d
mov dword [edi + 0x118], 1
jmp 0x40350f
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.0x402fab
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
cmp eax, 0x5f
ja case.0x401d51.45
jmp dword [eax*4 + 0x47fd7c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.004018e0
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, edi
mov edx, str._abi:
call fcn.00401923
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x5d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov edx, 0x5b
mov eax, edi
mov ebx, esi
call fcn.004018a2
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x401e5f
mov edx, 0x47fac6
mov eax, edi
call fcn.00401923
jmp 0x401db3
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0x28
jne 0x40305b
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x402f63
test ebx, ebx
jne 0x402f71
mov edx, 0x28
mov eax, edi
call fcn.004018a2
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov edx, 0x29
mov eax, edi
call fcn.004018a2
cmp dword [esi], 0x3f
jne 0x401e36
mov edx, 0x2d
mov eax, edi
call fcn.004018a2
cmp ebx, 8
jne 0x401e47
mov edx, 0x5b
mov eax, edi
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
cmp ebx, 8
jne case.default.0x402fab
mov edx, 0x5d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, edi
mov edx, 0x40
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x401eb2
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
cmp dword [esi], 0x56
je 0x401ec4
cmp dword [esi + 0xc], 0
mov edx, 0x2e
jne 0x401ec9
jmp 0x401ed0
mov edx, 0x3a
mov eax, edi
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov edx, 0x47fac9
mov eax, edi
call fcn.00401923
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
jne 0x401f2f
mov edx, str.default_arg
mov eax, edi
call fcn.00401923
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00401c0e
mov edx, 0x47fada
mov eax, edi
call fcn.00401923
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
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 0x401f6c
cmp dword [esp + 0x1c], 4
jne 0x401f7b
mov dword [edi + 0x118], 1
jmp case.default.0x402fab
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 fcn.004013b0
test eax, eax
jne 0x401fba
cmp dword [esp + 0x18], 2
jne 0x402016
jmp 0x401fbf
mov ebx, dword [ebx + 0xc]
jmp 0x401f61
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
jne 0x401fca
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
shl eax, 4
lea edx, [esp + eax + 0x30]
test ebx, ebx
je 0x401f6c
mov eax, dword [ebx]
call fcn.004013b0
test eax, eax
je 0x402016
cmp dword [esp + 0x1c], 4
je 0x401f6c
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 0x401fd5
cmp dword [ebx], 4
jne 0x402044
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 0x402044
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 fcn.00401cd5
cmp dword [ebx], 4
jne 0x402062
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 0x40208c
mov edx, 0x20
mov eax, edi
call fcn.004018a2
mov ecx, dword [esp + ebx + 0x24]
mov edx, 0x11
mov eax, edi
call fcn.00403517
sub ebx, 0x10
jne 0x402069
mov eax, dword [esp + 0x14]
mov dword [edi + 0x114], eax
jmp case.default.0x402fab
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 fcn.00401cd5
cmp byte [edi + 0x104], 0x3c
jne 0x4020e2
mov edx, 0x20
mov eax, edi
call fcn.004018a2
mov edx, 0x3c
mov eax, edi
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
cmp byte [edi + 0x104], 0x3e
jne 0x402112
mov edx, 0x20
mov eax, edi
call fcn.004018a2
mov eax, edi
mov edx, 0x3e
call fcn.004018a2
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], ebx
mov dword [edi + 0x148], eax
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, dword [edi + 0x120]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x40218c
mov eax, dword [edi + 0x110]
mov edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40216f
test edx, edx
je 0x40215f
mov eax, dword [eax + 0x10]
dec edx
jmp 0x402151
test eax, eax
je 0x40216f
cmp dword [eax], 0x5d
jne 0x40217e
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x40217e
mov dword [edi + 0x118], 1
jmp case.default.0x402fab
mov edx, dword [eax]
mov eax, edi
call fcn.00401c3f
jmp case.default.0x402fab
test eax, eax
je 0x4021b3
mov eax, edi
mov ecx, 5
mov edx, str.auto:
call fcn.004018e0
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.00401c0e
jmp case.default.0x402fab
mov edx, esi
mov eax, edi
call fcn.00401ac1
test eax, eax
je 0x40216f
cmp dword [eax], 0x30
jne 0x4021d4
mov edx, dword [edi + 0x124]
call fcn.00401aa3
test eax, eax
je 0x40216f
mov ebx, dword [edi + 0x110]
mov ecx, eax
mov eax, edi
mov edx, dword [ebx]
mov dword [edi + 0x110], edx
mov edx, 0x11
call fcn.00401cd5
mov dword [edi + 0x110], ebx
jmp case.default.0x402fab
mov eax, edi
mov edx, str.template_parameter_object_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, 0x7e
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.initializer_for_module
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.vtable_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.VTT_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.construction_vtable_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, edi
mov edx, str._in_
call fcn.00401923
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.typeinfo_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.typeinfo_name_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.typeinfo_fn_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.non_virtual_thunk_to
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.virtual_thunk_to
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.covariant_return_thunk_to
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.java_Class_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.guard_variable_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.TLS_init_function_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.TLS_wrapper_function_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.reference_temporary_
call fcn.00401923
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, edi
mov edx, str._for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.hidden_alias_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.transaction_clone_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.non_transaction_clone_for
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.004018e0
jmp case.default.0x402fab
mov ecx, dword [edi + 0x114]
test ecx, ecx
je 0x402624
cmp dword [ecx + 8], 0
jne 0x402516
mov eax, dword [ecx + 4]
mov eax, dword [eax]
lea edx, [eax - 0x19]
cmp edx, 2
ja 0x402628
cmp dword [esp + 0x18], eax
jne 0x402516
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx]
jmp 0x4024dd
cmp dword [edi + 0x120], 0
mov ebx, dword [ecx + 0xc]
jne 0x40260f
xor ecx, ecx
cmp dword [ebx], 5
mov dword [esp + 0x1c], ecx
jne 0x40260f
mov eax, dword [edi + 0x134]
xor edx, edx
cmp edx, eax
jge 0x40258f
mov ecx, dword [edi + 0x130]
lea ecx, [ecx + edx*8]
cmp ebx, dword [ecx]
je 0x402555
inc edx
jmp 0x402541
lea eax, [esp + 0x20]
mov edx, dword [eax]
cmp ebx, edx
je 0x4025ca
cmp esi, edx
jne 0x40256b
lea edx, [esp + 0x20]
cmp eax, edx
jne 0x4025ca
mov eax, dword [eax + 4]
test eax, eax
jne 0x402559
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 0x4025d0
cmp eax, dword [edi + 0x138]
jge 0x4034ce
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 0x4034da
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 fcn.00401ac1
mov ebx, eax
test eax, eax
je 0x4025f5
cmp dword [eax], 0x30
jne 0x40260f
mov edx, dword [edi + 0x124]
call fcn.00401aa3
mov ebx, eax
test eax, eax
jne 0x40260f
cmp dword [esp + 0x1c], 0
je 0x40216f
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp 0x40216f
mov eax, dword [ebx]
cmp eax, 0x24
je 0x402630
cmp dword [esp + 0x18], eax
je 0x402630
cmp eax, 0x25
jne case.0x401d51.28
mov ecx, dword [ebx + 0xc]
mov ebx, esi
jmp 0x402632
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 0x402661
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
cmp dword [esp + 0x38], 0
jne 0x402682
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00403517
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
mov dword [edi + 0x114], eax
je case.default.0x402fab
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp case.default.0x402fab
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.004018e0
jmp case.default.0x402fab
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.004018e0
movsx edx, word [esi + 0x10]
mov eax, edi
call fcn.00401c0e
cmp byte [esi + 0x12], 0
je case.default.0x402fab
lea edx, [esi + 0x12]
mov ecx, 1
mov eax, edi
call fcn.004018e0
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x402762
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 fcn.00401cd5
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x402fab
mov edx, 0x20
mov eax, edi
call fcn.004018a2
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.00403660
jmp case.default.0x402fab
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 0x40280d
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
ja 0x40280d
cmp dword [eax + 8], 0
jne 0x402809
cmp ebx, 3
jbe 0x4027de
mov dword [edi + 0x118], 1
jmp case.default.0x402fab
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 0x4027b3
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x402fab
cmp ebx, 1
jbe 0x40284e
dec ebx
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esp + eax + 0x34]
mov eax, edi
call fcn.00403517
jmp 0x402831
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.004038c6
jmp case.default.0x402fab
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 fcn.00401cd5
cmp dword [esp + 0x38], 0
jne 0x4028b6
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00403517
mov eax, dword [esp + 0x30]
mov dword [edi + 0x114], eax
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4028d8
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
cmp dword [esi + 0x10], 0
je case.default.0x402fab
cmp dword [edi + 0x100], 0xfd
jbe 0x4028f5
mov eax, edi
call fcn.00401864
mov edx, 0x47fac6
mov eax, edi
call fcn.00401923
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 fcn.00401cd5
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi + 0x128]
jne case.default.0x402fab
cmp ebx, dword [edi + 0x100]
jne case.default.0x402fab
sub ebx, 2
mov dword [edi + 0x100], ebx
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esi + 0x10]
test ecx, ecx
je 0x402960
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov eax, edi
mov edx, 0x7b
call fcn.004018a2
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x7d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov ebx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x47fc78
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
call fcn.00401923
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov al, byte [eax]
sub eax, 0x61
cmp al, 0x19
ja 0x4029c1
mov edx, 0x20
mov eax, edi
call fcn.004018a2
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
cmp byte [edx + ecx - 1], 0x20
jne 0x4029cc
dec ecx
mov eax, edi
call fcn.004018e0
jmp case.default.0x402fab
mov eax, edi
mov edx, str.operator
call fcn.00401923
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.operator
call fcn.00401923
mov eax, dword [edi + 0x148]
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x402a29
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 fcn.00401cd5
cmp dword [edi + 0x148], 0
je case.default.0x402fab
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00403985
jmp case.default.0x402fab
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, 0x33
jne 0x402b73
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], 0x47fc8b
mov dword [esp], eax
mov dword [esp + 0x1c], eax
call sub.msvcrt.dll_strcmp
mov edx, eax
mov eax, dword [ebx]
test edx, edx
jne 0x402ab8
cmp eax, 3
jne 0x402ab8
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jne 0x402ae1
mov edx, dword [ebx + 0x10]
cmp dword [edx], 0x2a
jne 0x402ae1
mov ebx, eax
jmp 0x402ae1
cmp eax, 0x3a
jne 0x402ae1
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004039a2
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.00403985
jmp case.default.0x402fab
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x47fc8e
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x402b15
mov edx, ebx
mov eax, edi
call fcn.00401ae3
call fcn.00401909
mov edx, eax
mov eax, edi
call fcn.00401c0e
jmp case.default.0x402fab
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x47fc91
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, eax
test eax, eax
jne 0x402b7e
test ebx, ebx
je 0x402b65
cmp dword [ebx], 0x30
jne 0x402b65
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x402b65
cmp dword [eax], 0x4d
jne 0x402b5f
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [esp + 0x1c], ecx
call fcn.00401ae3
call fcn.00401909
mov ecx, dword [esp + 0x1c]
add ecx, eax
jmp 0x402b60
inc ecx
mov ebx, dword [ebx + 0x10]
jmp 0x402b2f
mov edx, ecx
mov eax, edi
call fcn.00401c0e
jmp case.default.0x402fab
cmp eax, 0x35
je 0x402b9a
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.00403985
cmp dword [esp + 0x1c], 0
jne 0x402bca
jmp 0x402c50
mov eax, edi
mov edx, 0x28
call fcn.004018a2
mov eax, dword [esp + 0x18]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.00401cd5
mov edx, 0x29
mov eax, edi
call fcn.004018a2
jmp 0x402c50
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x47fc94
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x402bf5
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x47fc97
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x402c25
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x47fc9a
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x402c50
mov eax, edi
mov edx, 0x28
call fcn.004018a2
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x29
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004039a2
jmp case.default.0x402fab
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3a
jne 0x40216f
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
call fcn.00401cb1
test eax, eax
je 0x402cd7
mov eax, edi
mov edx, 0x11
call fcn.00403985
mov eax, edi
mov edx, 0x3c
call fcn.004018a2
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.00401cd5
mov eax, edi
mov edx, 0x47fc9d
call fcn.00401923
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.00401cd5
mov edx, 0x29
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00403a08
test eax, eax
jne case.default.0x402fab
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00403b3c
test eax, eax
jne case.default.0x402fab
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne 0x402d28
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x402d28
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x402d28
mov edx, 0x28
mov eax, edi
call fcn.004018a2
mov dword [esp + 4], 0x47fca0
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0xc]
test eax, eax
jne 0x402d64
cmp dword [ecx], 3
jne 0x402d64
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x402d61
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004039a2
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
mov dword [esp + 4], 0x47fca3
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x402dc0
mov eax, edi
mov edx, 0x5b
call fcn.004018a2
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.00401cd5
mov edx, 0x5d
mov eax, edi
call fcn.004018a2
jmp 0x402df4
mov dword [esp + 4], 0x47fca0
mov dword [esp], edx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x402de2
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00403985
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.004039a2
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne case.default.0x402fab
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x402fab
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x402fab
mov edx, 0x29
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov dword [edi + 0x118], 1
jmp case.default.0x402fab
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3c
jne 0x40216f
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne 0x40216f
mov edx, 0x11
mov eax, edi
call fcn.00403a08
test eax, eax
jne case.default.0x402fab
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00403b3c
test eax, eax
jne case.default.0x402fab
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], 0x47fca6
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x402f01
mov eax, edi
mov edx, 0x11
call fcn.004039a2
mov ecx, ebx
mov eax, edi
mov edx, 0x11
call fcn.00403985
mov ecx, dword [esp + 0x18]
mov eax, edi
mov edx, 0x11
call fcn.004039a2
mov eax, edi
mov edx, 0x47fca9
call fcn.00401923
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.004039a2
jmp case.default.0x402fab
mov edx, str.new
mov eax, edi
mov dword [esp + 0x14], ecx
call fcn.00401923
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x402f33
mov edx, 0x11
mov eax, edi
call fcn.004039a2
mov edx, 0x20
mov eax, edi
call fcn.004018a2
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
cmp dword [esp + 0x1c], 0
je case.default.0x402fab
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.004039a2
jmp case.default.0x402fab
cmp ebx, 7
je 0x403007
jmp 0x401dfe
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x401dfe
cmp dword [esp + 0x18], 0x3f
jne 0x402f90
mov edx, 0x2d
mov eax, edi
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.00401cd5
cmp ebx, 4
ja case.default.0x402fab
jmp dword [ebx*4 + 0x47fefc]
mov edx, 0x75
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov edx, 0x6c
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov edx, 0x47fcb2
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov edx, 0x47fcb5
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov edx, 0x47fcb8
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x401dfe
cmp dword [eax + 0x10], 1
jne 0x401dfe
cmp dword [esp + 0x18], 0x3e
jne 0x401dfe
mov eax, dword [eax + 0xc]
mov al, byte [eax]
cmp al, 0x30
je 0x40304a
cmp al, 0x31
jne 0x401dfe
mov edx, 0x47fcc2
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov edx, 0x47fcbc
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
xor ebx, ebx
jmp 0x401dfe
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, edi
mov edx, 0x28
call fcn.004018a2
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x29
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov edx, dword [ecx + 0xc]
mov eax, edi
call fcn.00401c0e
jmp case.default.0x402fab
mov eax, edi
mov edx, str.java_resource
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
movsx edx, byte [ecx + 0xc]
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov eax, edi
mov edx, str.decltype__
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x29
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov eax, dword [ecx + 0xc]
mov ebx, dword [edi + 0x120]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x40315d
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.004039a2
mov edx, 0x47fce1
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov edx, dword [esp + 0x1c]
mov eax, edi
call fcn.00401ae3
test eax, eax
je 0x40313c
call fcn.00401909
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je case.default.0x402fab
test ebx, ebx
je 0x40318f
mov edx, 0x47fac6
mov eax, edi
call fcn.00401923
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
inc ebx
call fcn.00401cd5
jmp 0x403175
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jne 0x4031c0
mov edx, 0x47fce5
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov eax, edi
mov edx, str.parm
call fcn.00401923
mov edx, ebx
mov eax, edi
call fcn.00401c0e
mov edx, 0x7d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov eax, edi
mov edx, str.global_constructors_keyed_to
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov eax, edi
mov edx, str.global_destructors_keyed_to
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
jmp case.default.0x402fab
mov edx, str.lambda
mov eax, edi
call fcn.00401923
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 0x403305
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0x59
jne 0x403305
mov dword [esp + 0x34], eax
mov edx, 0x3c
mov eax, edi
call fcn.004018a2
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x4032ee
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x4032b5
mov edx, 0x47fac6
mov eax, edi
call fcn.00401923
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov edx, 0x20
mov eax, edi
call fcn.004018a2
cmp dword [ebx], 0x5d
jne 0x4032d7
mov ebx, dword [ebx + 0xc]
mov eax, dword [edi + 0x120]
mov edx, dword [ebx]
lea ecx, [eax - 1]
mov eax, edi
call fcn.00401c3f
mov ebx, dword [ebx + 0x10]
jmp 0x403292
mov eax, edi
mov edx, 0x3e
call fcn.004018a2
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 fcn.004018a2
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, dword [esp + 0x18]
mov edx, 0x47fd34
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
mov eax, edi
call fcn.00401923
mov eax, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00401c0e
mov edx, 0x7d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov eax, edi
mov edx, str.unnamed_type
call fcn.00401923
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.00401c0e
mov edx, 0x7d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov eax, edi
mov edx, str.__clone
call fcn.00401923
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x5d
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, str._friend_
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov eax, edi
mov edx, 0x3c
call fcn.004018a2
xor eax, eax
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x40342d
cmp dword [esp + 0x1c], 0
je 0x403416
mov edx, 0x47fac6
mov eax, edi
call fcn.00401923
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
inc dword [esp + 0x1c]
mov ebx, dword [ebx + 0x10]
jmp 0x4033ff
mov edx, 0x3e
mov eax, edi
call fcn.004018a2
jmp case.default.0x402fab
mov edx, str.typename
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov eax, edi
mov edx, str.template
call fcn.00401923
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, str._class
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.00401cd5
mov edx, 0x47fce1
mov eax, edi
call fcn.00401923
jmp case.default.0x402fab
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov edx, str._requires
mov eax, edi
call fcn.00401923
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.00401cd5
mov eax, dword [esp + 0x24]
mov dword [edi + 0x12c], eax
dec dword [esi + 4]
dec dword [edi + 0x11c]
jmp 0x40350f
mov dword [edi + 0x118], 1
jmp case.default.0x402fab
mov eax, dword [edi + 0x140]
cmp eax, dword [edi + 0x144]
jge 0x4034ce
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 0x4025ba
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret