Function at 0x43d661
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 0x43d68a
mov edx, dword [ecx + 4]
mov esi, ecx
cmp edx, 1
jg 0x43d68a
mov eax, dword [eax + 0x11c]
cmp eax, 0x400
jle 0x43d699
mov dword [edi + 0x118], 1
jmp 0x43ee9b
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.0x43e937
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
cmp eax, 0x5f
ja case.0x43d6dd.45
jmp dword [eax*4 + 0x459d7c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.0043d26c
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, edi
mov edx, str._abi:
call fcn.0043d2af
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, 0x5d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov edx, 0x5b
mov eax, edi
mov ebx, esi
call fcn.0043d22e
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x43d7eb
mov edx, 0x459ac6
mov eax, edi
call fcn.0043d2af
jmp 0x43d73f
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0x28
jne 0x43e9e7
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x43e8ef
test ebx, ebx
jne 0x43e8fd
mov edx, 0x28
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
cmp dword [esi], 0x3f
jne 0x43d7c2
mov edx, 0x2d
mov eax, edi
call fcn.0043d22e
cmp ebx, 8
jne 0x43d7d3
mov edx, 0x5b
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
cmp ebx, 8
jne case.default.0x43e937
mov edx, 0x5d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, edi
mov edx, 0x40
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x43d83e
mov edx, 0x11
mov eax, edi
call fcn.0043d661
cmp dword [esi], 0x56
je 0x43d850
cmp dword [esi + 0xc], 0
mov edx, 0x2e
jne 0x43d855
jmp 0x43d85c
mov edx, 0x3a
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov edx, 0x459ac9
mov eax, edi
call fcn.0043d2af
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
jne 0x43d8bb
mov edx, str.default_arg
mov eax, edi
call fcn.0043d2af
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.0043d59a
mov edx, 0x459ada
mov eax, edi
call fcn.0043d2af
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
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 0x43d8f8
cmp dword [esp + 0x1c], 4
jne 0x43d907
mov dword [edi + 0x118], 1
jmp case.default.0x43e937
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.0043cd3c
test eax, eax
jne 0x43d946
cmp dword [esp + 0x18], 2
jne 0x43d9a2
jmp 0x43d94b
mov ebx, dword [ebx + 0xc]
jmp 0x43d8ed
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
jne 0x43d956
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
shl eax, 4
lea edx, [esp + eax + 0x30]
test ebx, ebx
je 0x43d8f8
mov eax, dword [ebx]
call fcn.0043cd3c
test eax, eax
je 0x43d9a2
cmp dword [esp + 0x1c], 4
je 0x43d8f8
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 0x43d961
cmp dword [ebx], 4
jne 0x43d9d0
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 0x43d9d0
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.0043d661
cmp dword [ebx], 4
jne 0x43d9ee
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 0x43da18
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esp + ebx + 0x24]
mov edx, 0x11
mov eax, edi
call fcn.0043eea3
sub ebx, 0x10
jne 0x43d9f5
mov eax, dword [esp + 0x14]
mov dword [edi + 0x114], eax
jmp case.default.0x43e937
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.0043d661
cmp byte [edi + 0x104], 0x3c
jne 0x43da6e
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
mov edx, 0x3c
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
cmp byte [edi + 0x104], 0x3e
jne 0x43da9e
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
mov eax, edi
mov edx, 0x3e
call fcn.0043d22e
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], ebx
mov dword [edi + 0x148], eax
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, dword [edi + 0x120]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x43db18
mov eax, dword [edi + 0x110]
mov edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x43dafb
test edx, edx
je 0x43daeb
mov eax, dword [eax + 0x10]
dec edx
jmp 0x43dadd
test eax, eax
je 0x43dafb
cmp dword [eax], 0x5d
jne 0x43db0a
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x43db0a
mov dword [edi + 0x118], 1
jmp case.default.0x43e937
mov edx, dword [eax]
mov eax, edi
call fcn.0043d5cb
jmp case.default.0x43e937
test eax, eax
je 0x43db3f
mov eax, edi
mov ecx, 5
mov edx, str.auto:
call fcn.0043d26c
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.0043d59a
jmp case.default.0x43e937
mov edx, esi
mov eax, edi
call fcn.0043d44d
test eax, eax
je 0x43dafb
cmp dword [eax], 0x30
jne 0x43db60
mov edx, dword [edi + 0x124]
call fcn.0043d42f
test eax, eax
je 0x43dafb
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.0043d661
mov dword [edi + 0x110], ebx
jmp case.default.0x43e937
mov eax, edi
mov edx, str.template_parameter_object_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, 0x7e
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.initializer_for_module
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.vtable_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.VTT_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.construction_vtable_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, edi
mov edx, str._in_
call fcn.0043d2af
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.typeinfo_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.typeinfo_name_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.typeinfo_fn_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.non_virtual_thunk_to
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.virtual_thunk_to
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.covariant_return_thunk_to
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.java_Class_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.guard_variable_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.TLS_init_function_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.TLS_wrapper_function_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.reference_temporary_
call fcn.0043d2af
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, edi
mov edx, str._for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.hidden_alias_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.transaction_clone_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.non_transaction_clone_for
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.0043d26c
jmp case.default.0x43e937
mov ecx, dword [edi + 0x114]
test ecx, ecx
je 0x43dfb0
cmp dword [ecx + 8], 0
jne 0x43dea2
mov eax, dword [ecx + 4]
mov eax, dword [eax]
lea edx, [eax - 0x19]
cmp edx, 2
ja 0x43dfb4
cmp dword [esp + 0x18], eax
jne 0x43dea2
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx]
jmp 0x43de69
cmp dword [edi + 0x120], 0
mov ebx, dword [ecx + 0xc]
jne 0x43df9b
xor ecx, ecx
cmp dword [ebx], 5
mov dword [esp + 0x1c], ecx
jne 0x43df9b
mov eax, dword [edi + 0x134]
xor edx, edx
cmp edx, eax
jge 0x43df1b
mov ecx, dword [edi + 0x130]
lea ecx, [ecx + edx*8]
cmp ebx, dword [ecx]
je 0x43dee1
inc edx
jmp 0x43decd
lea eax, [esp + 0x20]
mov edx, dword [eax]
cmp ebx, edx
je 0x43df56
cmp esi, edx
jne 0x43def7
lea edx, [esp + 0x20]
cmp eax, edx
jne 0x43df56
mov eax, dword [eax + 4]
test eax, eax
jne 0x43dee5
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 0x43df5c
cmp eax, dword [edi + 0x138]
jge 0x43ee5a
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 0x43ee66
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.0043d44d
mov ebx, eax
test eax, eax
je 0x43df81
cmp dword [eax], 0x30
jne 0x43df9b
mov edx, dword [edi + 0x124]
call fcn.0043d42f
mov ebx, eax
test eax, eax
jne 0x43df9b
cmp dword [esp + 0x1c], 0
je 0x43dafb
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp 0x43dafb
mov eax, dword [ebx]
cmp eax, 0x24
je 0x43dfbc
cmp dword [esp + 0x18], eax
je 0x43dfbc
cmp eax, 0x25
jne case.0x43d6dd.28
mov ecx, dword [ebx + 0xc]
mov ebx, esi
jmp 0x43dfbe
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 0x43dfed
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
cmp dword [esp + 0x38], 0
jne 0x43e00e
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043eea3
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
mov dword [edi + 0x114], eax
je case.default.0x43e937
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp case.default.0x43e937
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.0043d26c
jmp case.default.0x43e937
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.0043d26c
movsx edx, word [esi + 0x10]
mov eax, edi
call fcn.0043d59a
cmp byte [esi + 0x12], 0
je case.default.0x43e937
lea edx, [esi + 0x12]
mov ecx, 1
mov eax, edi
call fcn.0043d26c
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x43e0ee
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.0043d661
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x43e937
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0043efec
jmp case.default.0x43e937
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 0x43e199
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
ja 0x43e199
cmp dword [eax + 8], 0
jne 0x43e195
cmp ebx, 3
jbe 0x43e16a
mov dword [edi + 0x118], 1
jmp case.default.0x43e937
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 0x43e13f
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x43e937
cmp ebx, 1
jbe 0x43e1da
dec ebx
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esp + eax + 0x34]
mov eax, edi
call fcn.0043eea3
jmp 0x43e1bd
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0043f252
jmp case.default.0x43e937
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.0043d661
cmp dword [esp + 0x38], 0
jne 0x43e242
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0043eea3
mov eax, dword [esp + 0x30]
mov dword [edi + 0x114], eax
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x43e264
mov edx, 0x11
mov eax, edi
call fcn.0043d661
cmp dword [esi + 0x10], 0
je case.default.0x43e937
cmp dword [edi + 0x100], 0xfd
jbe 0x43e281
mov eax, edi
call fcn.0043d1f0
mov edx, 0x459ac6
mov eax, edi
call fcn.0043d2af
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.0043d661
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi + 0x128]
jne case.default.0x43e937
cmp ebx, dword [edi + 0x100]
jne case.default.0x43e937
sub ebx, 2
mov dword [edi + 0x100], ebx
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esi + 0x10]
test ecx, ecx
je 0x43e2ec
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov eax, edi
mov edx, 0x7b
call fcn.0043d22e
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0043d661
mov edx, 0x7d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov ebx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x459c78
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
call fcn.0043d2af
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov al, byte [eax]
sub eax, 0x61
cmp al, 0x19
ja 0x43e34d
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
cmp byte [edx + ecx - 1], 0x20
jne 0x43e358
dec ecx
mov eax, edi
call fcn.0043d26c
jmp case.default.0x43e937
mov eax, edi
mov edx, str.operator
call fcn.0043d2af
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.operator
call fcn.0043d2af
mov eax, dword [edi + 0x148]
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x43e3b5
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.0043d661
cmp dword [edi + 0x148], 0
je case.default.0x43e937
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043f311
jmp case.default.0x43e937
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, 0x33
jne 0x43e4ff
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], 0x459c8b
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 0x43e444
cmp eax, 3
jne 0x43e444
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jne 0x43e46d
mov edx, dword [ebx + 0x10]
cmp dword [edx], 0x2a
jne 0x43e46d
mov ebx, eax
jmp 0x43e46d
cmp eax, 0x3a
jne 0x43e46d
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043f32e
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.0043f311
jmp case.default.0x43e937
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x459c8e
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x43e4a1
mov edx, ebx
mov eax, edi
call fcn.0043d46f
call fcn.0043d295
mov edx, eax
mov eax, edi
call fcn.0043d59a
jmp case.default.0x43e937
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x459c91
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, eax
test eax, eax
jne 0x43e50a
test ebx, ebx
je 0x43e4f1
cmp dword [ebx], 0x30
jne 0x43e4f1
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x43e4f1
cmp dword [eax], 0x4d
jne 0x43e4eb
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [esp + 0x1c], ecx
call fcn.0043d46f
call fcn.0043d295
mov ecx, dword [esp + 0x1c]
add ecx, eax
jmp 0x43e4ec
inc ecx
mov ebx, dword [ebx + 0x10]
jmp 0x43e4bb
mov edx, ecx
mov eax, edi
call fcn.0043d59a
jmp case.default.0x43e937
cmp eax, 0x35
je 0x43e526
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.0043f311
cmp dword [esp + 0x1c], 0
jne 0x43e556
jmp 0x43e5dc
mov eax, edi
mov edx, 0x28
call fcn.0043d22e
mov eax, dword [esp + 0x18]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0043d661
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
jmp 0x43e5dc
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x459c94
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x43e581
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x459c97
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x43e5b1
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x459c9a
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x43e5dc
mov eax, edi
mov edx, 0x28
call fcn.0043d22e
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0043d661
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043f32e
jmp case.default.0x43e937
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3a
jne 0x43dafb
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
call fcn.0043d63d
test eax, eax
je 0x43e663
mov eax, edi
mov edx, 0x11
call fcn.0043f311
mov eax, edi
mov edx, 0x3c
call fcn.0043d22e
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0043d661
mov eax, edi
mov edx, 0x459c9d
call fcn.0043d2af
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0043d661
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0043f394
test eax, eax
jne case.default.0x43e937
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0043f4c8
test eax, eax
jne case.default.0x43e937
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne 0x43e6b4
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x43e6b4
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x43e6b4
mov edx, 0x28
mov eax, edi
call fcn.0043d22e
mov dword [esp + 4], 0x459ca0
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 0x43e6f0
cmp dword [ecx], 3
jne 0x43e6f0
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x43e6ed
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043f32e
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
mov dword [esp + 4], 0x459ca3
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x43e74c
mov eax, edi
mov edx, 0x5b
call fcn.0043d22e
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0043d661
mov edx, 0x5d
mov eax, edi
call fcn.0043d22e
jmp 0x43e780
mov dword [esp + 4], 0x459ca0
mov dword [esp], edx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x43e76e
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043f311
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0043f32e
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne case.default.0x43e937
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x43e937
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x43e937
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov dword [edi + 0x118], 1
jmp case.default.0x43e937
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3c
jne 0x43dafb
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne 0x43dafb
mov edx, 0x11
mov eax, edi
call fcn.0043f394
test eax, eax
jne case.default.0x43e937
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0043f4c8
test eax, eax
jne case.default.0x43e937
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], 0x459ca6
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 0x43e88d
mov eax, edi
mov edx, 0x11
call fcn.0043f32e
mov ecx, ebx
mov eax, edi
mov edx, 0x11
call fcn.0043f311
mov ecx, dword [esp + 0x18]
mov eax, edi
mov edx, 0x11
call fcn.0043f32e
mov eax, edi
mov edx, 0x459ca9
call fcn.0043d2af
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.0043f32e
jmp case.default.0x43e937
mov edx, str.new
mov eax, edi
mov dword [esp + 0x14], ecx
call fcn.0043d2af
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x43e8bf
mov edx, 0x11
mov eax, edi
call fcn.0043f32e
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
cmp dword [esp + 0x1c], 0
je case.default.0x43e937
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.0043f32e
jmp case.default.0x43e937
cmp ebx, 7
je 0x43e993
jmp 0x43d78a
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x43d78a
cmp dword [esp + 0x18], 0x3f
jne 0x43e91c
mov edx, 0x2d
mov eax, edi
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0043d661
cmp ebx, 4
ja case.default.0x43e937
jmp dword [ebx*4 + 0x459efc]
mov edx, 0x75
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov edx, 0x6c
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov edx, 0x459cb2
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov edx, 0x459cb5
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov edx, 0x459cb8
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x43d78a
cmp dword [eax + 0x10], 1
jne 0x43d78a
cmp dword [esp + 0x18], 0x3e
jne 0x43d78a
mov eax, dword [eax + 0xc]
mov al, byte [eax]
cmp al, 0x30
je 0x43e9d6
cmp al, 0x31
jne 0x43d78a
mov edx, str.true
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov edx, str.false
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
xor ebx, ebx
jmp 0x43d78a
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, edi
mov edx, 0x28
call fcn.0043d22e
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov edx, dword [ecx + 0xc]
mov eax, edi
call fcn.0043d59a
jmp case.default.0x43e937
mov eax, edi
mov edx, str.java_resource
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
movsx edx, byte [ecx + 0xc]
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov eax, edi
mov edx, str.decltype__
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, 0x29
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov eax, dword [ecx + 0xc]
mov ebx, dword [edi + 0x120]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x43eae9
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.0043f32e
mov edx, 0x459ce1
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov edx, dword [esp + 0x1c]
mov eax, edi
call fcn.0043d46f
test eax, eax
je 0x43eac8
call fcn.0043d295
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je case.default.0x43e937
test ebx, ebx
je 0x43eb1b
mov edx, 0x459ac6
mov eax, edi
call fcn.0043d2af
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
inc ebx
call fcn.0043d661
jmp 0x43eb01
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jne 0x43eb4c
mov edx, 0x459ce5
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov eax, edi
mov edx, str.parm
call fcn.0043d2af
mov edx, ebx
mov eax, edi
call fcn.0043d59a
mov edx, 0x7d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov eax, edi
mov edx, str.global_constructors_keyed_to
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov eax, edi
mov edx, str.global_destructors_keyed_to
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
jmp case.default.0x43e937
mov edx, str.lambda
mov eax, edi
call fcn.0043d2af
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 0x43ec91
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0x59
jne 0x43ec91
mov dword [esp + 0x34], eax
mov edx, 0x3c
mov eax, edi
call fcn.0043d22e
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x43ec7a
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x43ec41
mov edx, 0x459ac6
mov eax, edi
call fcn.0043d2af
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov edx, 0x20
mov eax, edi
call fcn.0043d22e
cmp dword [ebx], 0x5d
jne 0x43ec63
mov ebx, dword [ebx + 0xc]
mov eax, dword [edi + 0x120]
mov edx, dword [ebx]
lea ecx, [eax - 1]
mov eax, edi
call fcn.0043d5cb
mov ebx, dword [ebx + 0x10]
jmp 0x43ec1e
mov eax, edi
mov edx, 0x3e
call fcn.0043d22e
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.0043d22e
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, dword [esp + 0x18]
mov edx, 0x459d34
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
mov eax, edi
call fcn.0043d2af
mov eax, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.0043d59a
mov edx, 0x7d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov eax, edi
mov edx, str.unnamed_type
call fcn.0043d2af
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.0043d59a
mov edx, 0x7d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov eax, edi
mov edx, str.__clone
call fcn.0043d2af
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, 0x5d
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, str._friend_
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov eax, edi
mov edx, 0x3c
call fcn.0043d22e
xor eax, eax
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x43edb9
cmp dword [esp + 0x1c], 0
je 0x43eda2
mov edx, 0x459ac6
mov eax, edi
call fcn.0043d2af
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0043d661
inc dword [esp + 0x1c]
mov ebx, dword [ebx + 0x10]
jmp 0x43ed8b
mov edx, 0x3e
mov eax, edi
call fcn.0043d22e
jmp case.default.0x43e937
mov edx, str.typename
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov eax, edi
mov edx, str.template
call fcn.0043d2af
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, str._class
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0043d661
mov edx, 0x459ce1
mov eax, edi
call fcn.0043d2af
jmp case.default.0x43e937
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov edx, str._requires
mov eax, edi
call fcn.0043d2af
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0043d661
mov eax, dword [esp + 0x24]
mov dword [edi + 0x12c], eax
dec dword [esi + 4]
dec dword [edi + 0x11c]
jmp 0x43ee9b
mov dword [edi + 0x118], 1
jmp case.default.0x43e937
mov eax, dword [edi + 0x140]
cmp eax, dword [edi + 0x144]
jge 0x43ee5a
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 0x43df46
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret