Function at 0x4028d9
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 0x402902
mov edx, dword [ecx + 4]
mov esi, ecx
cmp edx, 1
jg 0x402902
mov eax, dword [eax + 0x11c]
cmp eax, 0x400
jle 0x402911
mov dword [edi + 0x118], 1
jmp 0x404113
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.0x403baf
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
cmp eax, 0x5f
ja case.0x402955.45
jmp dword [eax*4 + 0x4821fc]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.004024e4
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, edi
mov edx, str._abi:
call fcn.00402527
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, 0x5d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov edx, 0x5b
mov eax, edi
mov ebx, esi
call fcn.004024a6
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x402a63
mov edx, 0x481f46
mov eax, edi
call fcn.00402527
jmp 0x4029b7
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0x28
jne 0x403c5f
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x403b67
test ebx, ebx
jne 0x403b75
mov edx, 0x28
mov eax, edi
call fcn.004024a6
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov edx, 0x29
mov eax, edi
call fcn.004024a6
cmp dword [esi], 0x3f
jne 0x402a3a
mov edx, 0x2d
mov eax, edi
call fcn.004024a6
cmp ebx, 8
jne 0x402a4b
mov edx, 0x5b
mov eax, edi
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
cmp ebx, 8
jne case.default.0x403baf
mov edx, 0x5d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, edi
mov edx, 0x40
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x402ab6
mov edx, 0x11
mov eax, edi
call fcn.004028d9
cmp dword [esi], 0x56
je 0x402ac8
cmp dword [esi + 0xc], 0
mov edx, 0x2e
jne 0x402acd
jmp 0x402ad4
mov edx, 0x3a
mov eax, edi
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov edx, 0x481f49
mov eax, edi
call fcn.00402527
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
jne 0x402b33
mov edx, str.default_arg
mov eax, edi
call fcn.00402527
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402812
mov edx, 0x481f5a
mov eax, edi
call fcn.00402527
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
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 0x402b70
cmp dword [esp + 0x1c], 4
jne 0x402b7f
mov dword [edi + 0x118], 1
jmp case.default.0x403baf
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.00401fb4
test eax, eax
jne 0x402bbe
cmp dword [esp + 0x18], 2
jne 0x402c1a
jmp 0x402bc3
mov ebx, dword [ebx + 0xc]
jmp 0x402b65
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
jne 0x402bce
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
shl eax, 4
lea edx, [esp + eax + 0x30]
test ebx, ebx
je 0x402b70
mov eax, dword [ebx]
call fcn.00401fb4
test eax, eax
je 0x402c1a
cmp dword [esp + 0x1c], 4
je 0x402b70
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 0x402bd9
cmp dword [ebx], 4
jne 0x402c48
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 0x402c48
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.004028d9
cmp dword [ebx], 4
jne 0x402c66
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 0x402c90
mov edx, 0x20
mov eax, edi
call fcn.004024a6
mov ecx, dword [esp + ebx + 0x24]
mov edx, 0x11
mov eax, edi
call fcn.0040411b
sub ebx, 0x10
jne 0x402c6d
mov eax, dword [esp + 0x14]
mov dword [edi + 0x114], eax
jmp case.default.0x403baf
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.004028d9
cmp byte [edi + 0x104], 0x3c
jne 0x402ce6
mov edx, 0x20
mov eax, edi
call fcn.004024a6
mov edx, 0x3c
mov eax, edi
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
cmp byte [edi + 0x104], 0x3e
jne 0x402d16
mov edx, 0x20
mov eax, edi
call fcn.004024a6
mov eax, edi
mov edx, 0x3e
call fcn.004024a6
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], ebx
mov dword [edi + 0x148], eax
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, dword [edi + 0x120]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x402d90
mov eax, dword [edi + 0x110]
mov edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x402d73
test edx, edx
je 0x402d63
mov eax, dword [eax + 0x10]
dec edx
jmp 0x402d55
test eax, eax
je 0x402d73
cmp dword [eax], 0x5d
jne 0x402d82
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x402d82
mov dword [edi + 0x118], 1
jmp case.default.0x403baf
mov edx, dword [eax]
mov eax, edi
call fcn.00402843
jmp case.default.0x403baf
test eax, eax
je 0x402db7
mov eax, edi
mov ecx, 5
mov edx, str.auto:
call fcn.004024e4
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402812
jmp case.default.0x403baf
mov edx, esi
mov eax, edi
call fcn.004026c5
test eax, eax
je 0x402d73
cmp dword [eax], 0x30
jne 0x402dd8
mov edx, dword [edi + 0x124]
call fcn.004026a7
test eax, eax
je 0x402d73
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.004028d9
mov dword [edi + 0x110], ebx
jmp case.default.0x403baf
mov eax, edi
mov edx, str.template_parameter_object_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, 0x7e
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.initializer_for_module
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.vtable_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.VTT_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.construction_vtable_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, edi
mov edx, str._in_
call fcn.00402527
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.typeinfo_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.typeinfo_name_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.typeinfo_fn_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.non_virtual_thunk_to
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.virtual_thunk_to
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.covariant_return_thunk_to
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.java_Class_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.guard_variable_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.TLS_init_function_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.TLS_wrapper_function_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.reference_temporary_
call fcn.00402527
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, edi
mov edx, str._for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.hidden_alias_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.transaction_clone_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.non_transaction_clone_for
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.004024e4
jmp case.default.0x403baf
mov ecx, dword [edi + 0x114]
test ecx, ecx
je 0x403228
cmp dword [ecx + 8], 0
jne 0x40311a
mov eax, dword [ecx + 4]
mov eax, dword [eax]
lea edx, [eax - 0x19]
cmp edx, 2
ja 0x40322c
cmp dword [esp + 0x18], eax
jne 0x40311a
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx]
jmp 0x4030e1
cmp dword [edi + 0x120], 0
mov ebx, dword [ecx + 0xc]
jne 0x403213
xor ecx, ecx
cmp dword [ebx], 5
mov dword [esp + 0x1c], ecx
jne 0x403213
mov eax, dword [edi + 0x134]
xor edx, edx
cmp edx, eax
jge 0x403193
mov ecx, dword [edi + 0x130]
lea ecx, [ecx + edx*8]
cmp ebx, dword [ecx]
je 0x403159
inc edx
jmp 0x403145
lea eax, [esp + 0x20]
mov edx, dword [eax]
cmp ebx, edx
je 0x4031ce
cmp esi, edx
jne 0x40316f
lea edx, [esp + 0x20]
cmp eax, edx
jne 0x4031ce
mov eax, dword [eax + 4]
test eax, eax
jne 0x40315d
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 0x4031d4
cmp eax, dword [edi + 0x138]
jge 0x4040d2
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 0x4040de
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.004026c5
mov ebx, eax
test eax, eax
je 0x4031f9
cmp dword [eax], 0x30
jne 0x403213
mov edx, dword [edi + 0x124]
call fcn.004026a7
mov ebx, eax
test eax, eax
jne 0x403213
cmp dword [esp + 0x1c], 0
je 0x402d73
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp 0x402d73
mov eax, dword [ebx]
cmp eax, 0x24
je 0x403234
cmp dword [esp + 0x18], eax
je 0x403234
cmp eax, 0x25
jne case.0x402955.28
mov ecx, dword [ebx + 0xc]
mov ebx, esi
jmp 0x403236
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 0x403265
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
cmp dword [esp + 0x38], 0
jne 0x403286
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040411b
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
mov dword [edi + 0x114], eax
je case.default.0x403baf
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp case.default.0x403baf
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.004024e4
jmp case.default.0x403baf
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.004024e4
movsx edx, word [esi + 0x10]
mov eax, edi
call fcn.00402812
cmp byte [esi + 0x12], 0
je case.default.0x403baf
lea edx, [esi + 0x12]
mov ecx, 1
mov eax, edi
call fcn.004024e4
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x403366
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.004028d9
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x403baf
mov edx, 0x20
mov eax, edi
call fcn.004024a6
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.00404264
jmp case.default.0x403baf
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 0x403411
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
ja 0x403411
cmp dword [eax + 8], 0
jne 0x40340d
cmp ebx, 3
jbe 0x4033e2
mov dword [edi + 0x118], 1
jmp case.default.0x403baf
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 0x4033b7
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x403baf
cmp ebx, 1
jbe 0x403452
dec ebx
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esp + eax + 0x34]
mov eax, edi
call fcn.0040411b
jmp 0x403435
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.004044ca
jmp case.default.0x403baf
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.004028d9
cmp dword [esp + 0x38], 0
jne 0x4034ba
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040411b
mov eax, dword [esp + 0x30]
mov dword [edi + 0x114], eax
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4034dc
mov edx, 0x11
mov eax, edi
call fcn.004028d9
cmp dword [esi + 0x10], 0
je case.default.0x403baf
cmp dword [edi + 0x100], 0xfd
jbe 0x4034f9
mov eax, edi
call fcn.00402468
mov edx, 0x481f46
mov eax, edi
call fcn.00402527
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.004028d9
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi + 0x128]
jne case.default.0x403baf
cmp ebx, dword [edi + 0x100]
jne case.default.0x403baf
sub ebx, 2
mov dword [edi + 0x100], ebx
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esi + 0x10]
test ecx, ecx
je 0x403564
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov eax, edi
mov edx, 0x7b
call fcn.004024a6
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.004028d9
mov edx, 0x7d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov ebx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x4820f8
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
call fcn.00402527
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov al, byte [eax]
sub eax, 0x61
cmp al, 0x19
ja 0x4035c5
mov edx, 0x20
mov eax, edi
call fcn.004024a6
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
cmp byte [edx + ecx - 1], 0x20
jne 0x4035d0
dec ecx
mov eax, edi
call fcn.004024e4
jmp case.default.0x403baf
mov eax, edi
mov edx, str.operator
call fcn.00402527
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.operator
call fcn.00402527
mov eax, dword [edi + 0x148]
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x40362d
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.004028d9
cmp dword [edi + 0x148], 0
je case.default.0x403baf
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.00404589
jmp case.default.0x403baf
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, 0x33
jne 0x403777
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], 0x48210b
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 0x4036bc
cmp eax, 3
jne 0x4036bc
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jne 0x4036e5
mov edx, dword [ebx + 0x10]
cmp dword [edx], 0x2a
jne 0x4036e5
mov ebx, eax
jmp 0x4036e5
cmp eax, 0x3a
jne 0x4036e5
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004045a6
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.00404589
jmp case.default.0x403baf
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x48210e
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x403719
mov edx, ebx
mov eax, edi
call fcn.004026e7
call fcn.0040250d
mov edx, eax
mov eax, edi
call fcn.00402812
jmp case.default.0x403baf
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482111
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, eax
test eax, eax
jne 0x403782
test ebx, ebx
je 0x403769
cmp dword [ebx], 0x30
jne 0x403769
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x403769
cmp dword [eax], 0x4d
jne 0x403763
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [esp + 0x1c], ecx
call fcn.004026e7
call fcn.0040250d
mov ecx, dword [esp + 0x1c]
add ecx, eax
jmp 0x403764
inc ecx
mov ebx, dword [ebx + 0x10]
jmp 0x403733
mov edx, ecx
mov eax, edi
call fcn.00402812
jmp case.default.0x403baf
cmp eax, 0x35
je 0x40379e
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.00404589
cmp dword [esp + 0x1c], 0
jne 0x4037ce
jmp 0x403854
mov eax, edi
mov edx, 0x28
call fcn.004024a6
mov eax, dword [esp + 0x18]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.004028d9
mov edx, 0x29
mov eax, edi
call fcn.004024a6
jmp 0x403854
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482114
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4037f9
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x482117
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x403829
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x48211a
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x403854
mov eax, edi
mov edx, 0x28
call fcn.004024a6
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.004028d9
mov edx, 0x29
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004045a6
jmp case.default.0x403baf
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3a
jne 0x402d73
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
call fcn.004028b5
test eax, eax
je 0x4038db
mov eax, edi
mov edx, 0x11
call fcn.00404589
mov eax, edi
mov edx, 0x3c
call fcn.004024a6
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.004028d9
mov eax, edi
mov edx, 0x48211d
call fcn.00402527
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.004028d9
mov edx, 0x29
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040460c
test eax, eax
jne case.default.0x403baf
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00404740
test eax, eax
jne case.default.0x403baf
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne 0x40392c
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x40392c
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x40392c
mov edx, 0x28
mov eax, edi
call fcn.004024a6
mov dword [esp + 4], 0x482120
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 0x403968
cmp dword [ecx], 3
jne 0x403968
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x403965
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004045a6
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
mov dword [esp + 4], 0x482123
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x4039c4
mov eax, edi
mov edx, 0x5b
call fcn.004024a6
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.004028d9
mov edx, 0x5d
mov eax, edi
call fcn.004024a6
jmp 0x4039f8
mov dword [esp + 4], 0x482120
mov dword [esp], edx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4039e6
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.00404589
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.004045a6
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne case.default.0x403baf
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x403baf
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x403baf
mov edx, 0x29
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov dword [edi + 0x118], 1
jmp case.default.0x403baf
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3c
jne 0x402d73
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne 0x402d73
mov edx, 0x11
mov eax, edi
call fcn.0040460c
test eax, eax
jne case.default.0x403baf
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00404740
test eax, eax
jne case.default.0x403baf
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], 0x482126
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 0x403b05
mov eax, edi
mov edx, 0x11
call fcn.004045a6
mov ecx, ebx
mov eax, edi
mov edx, 0x11
call fcn.00404589
mov ecx, dword [esp + 0x18]
mov eax, edi
mov edx, 0x11
call fcn.004045a6
mov eax, edi
mov edx, 0x482129
call fcn.00402527
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.004045a6
jmp case.default.0x403baf
mov edx, str.new
mov eax, edi
mov dword [esp + 0x14], ecx
call fcn.00402527
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x403b37
mov edx, 0x11
mov eax, edi
call fcn.004045a6
mov edx, 0x20
mov eax, edi
call fcn.004024a6
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
cmp dword [esp + 0x1c], 0
je case.default.0x403baf
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.004045a6
jmp case.default.0x403baf
cmp ebx, 7
je 0x403c0b
jmp 0x402a02
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x402a02
cmp dword [esp + 0x18], 0x3f
jne 0x403b94
mov edx, 0x2d
mov eax, edi
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.004028d9
cmp ebx, 4
ja case.default.0x403baf
jmp dword [ebx*4 + 0x48237c]
mov edx, 0x75
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov edx, 0x6c
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov edx, 0x482132
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov edx, 0x482135
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov edx, 0x482138
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x402a02
cmp dword [eax + 0x10], 1
jne 0x402a02
cmp dword [esp + 0x18], 0x3e
jne 0x402a02
mov eax, dword [eax + 0xc]
mov al, byte [eax]
cmp al, 0x30
je 0x403c4e
cmp al, 0x31
jne 0x402a02
mov edx, 0x482142
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov edx, 0x48213c
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
xor ebx, ebx
jmp 0x402a02
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, edi
mov edx, 0x28
call fcn.004024a6
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, 0x29
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov edx, dword [ecx + 0xc]
mov eax, edi
call fcn.00402812
jmp case.default.0x403baf
mov eax, edi
mov edx, str.java_resource
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
movsx edx, byte [ecx + 0xc]
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov eax, edi
mov edx, str.decltype__
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, 0x29
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov eax, dword [ecx + 0xc]
mov ebx, dword [edi + 0x120]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x403d61
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.004045a6
mov edx, 0x482161
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov edx, dword [esp + 0x1c]
mov eax, edi
call fcn.004026e7
test eax, eax
je 0x403d40
call fcn.0040250d
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je case.default.0x403baf
test ebx, ebx
je 0x403d93
mov edx, 0x481f46
mov eax, edi
call fcn.00402527
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
inc ebx
call fcn.004028d9
jmp 0x403d79
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jne 0x403dc4
mov edx, 0x482165
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov eax, edi
mov edx, str.parm
call fcn.00402527
mov edx, ebx
mov eax, edi
call fcn.00402812
mov edx, 0x7d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov eax, edi
mov edx, str.global_constructors_keyed_to
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov eax, edi
mov edx, str.global_destructors_keyed_to
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
jmp case.default.0x403baf
mov edx, str.lambda
mov eax, edi
call fcn.00402527
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 0x403f09
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0x59
jne 0x403f09
mov dword [esp + 0x34], eax
mov edx, 0x3c
mov eax, edi
call fcn.004024a6
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x403ef2
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x403eb9
mov edx, 0x481f46
mov eax, edi
call fcn.00402527
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov edx, 0x20
mov eax, edi
call fcn.004024a6
cmp dword [ebx], 0x5d
jne 0x403edb
mov ebx, dword [ebx + 0xc]
mov eax, dword [edi + 0x120]
mov edx, dword [ebx]
lea ecx, [eax - 1]
mov eax, edi
call fcn.00402843
mov ebx, dword [ebx + 0x10]
jmp 0x403e96
mov eax, edi
mov edx, 0x3e
call fcn.004024a6
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.004024a6
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, dword [esp + 0x18]
mov edx, 0x4821b4
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
mov eax, edi
call fcn.00402527
mov eax, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402812
mov edx, 0x7d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov eax, edi
mov edx, str.unnamed_type
call fcn.00402527
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402812
mov edx, 0x7d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov eax, edi
mov edx, str.__clone
call fcn.00402527
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, 0x5d
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, str._friend_
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov eax, edi
mov edx, 0x3c
call fcn.004024a6
xor eax, eax
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x404031
cmp dword [esp + 0x1c], 0
je 0x40401a
mov edx, 0x481f46
mov eax, edi
call fcn.00402527
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004028d9
inc dword [esp + 0x1c]
mov ebx, dword [ebx + 0x10]
jmp 0x404003
mov edx, 0x3e
mov eax, edi
call fcn.004024a6
jmp case.default.0x403baf
mov edx, str.typename
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov eax, edi
mov edx, str.template
call fcn.00402527
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, str._class
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.004028d9
mov edx, 0x482161
mov eax, edi
call fcn.00402527
jmp case.default.0x403baf
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov edx, str._requires
mov eax, edi
call fcn.00402527
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.004028d9
mov eax, dword [esp + 0x24]
mov dword [edi + 0x12c], eax
dec dword [esi + 4]
dec dword [edi + 0x11c]
jmp 0x404113
mov dword [edi + 0x118], 1
jmp case.default.0x403baf
mov eax, dword [edi + 0x140]
cmp eax, dword [edi + 0x144]
jge 0x4040d2
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 0x4031be
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret