Function at 0x40294d
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 0x402976
mov edx, dword [ecx + 4]
mov esi, ecx
cmp edx, 1
jg 0x402976
mov eax, dword [eax + 0x11c]
cmp eax, 0x400
jle 0x402985
mov dword [edi + 0x118], 1
jmp 0x404187
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.0x403c23
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
cmp eax, 0x5f
ja case.0x4029c9.45
jmp dword [eax*4 + 0x48839c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.00402558
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, edi
mov edx, str._abi:
call fcn.0040259b
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, 0x5d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov edx, 0x5b
mov eax, edi
mov ebx, esi
call fcn.0040251a
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x402ad7
mov edx, 0x4880e6
mov eax, edi
call fcn.0040259b
jmp 0x402a2b
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0x28
jne 0x403cd3
mov eax, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x403bdb
test ebx, ebx
jne 0x403be9
mov edx, 0x28
mov eax, edi
call fcn.0040251a
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov edx, 0x29
mov eax, edi
call fcn.0040251a
cmp dword [esi], 0x3f
jne 0x402aae
mov edx, 0x2d
mov eax, edi
call fcn.0040251a
cmp ebx, 8
jne 0x402abf
mov edx, 0x5b
mov eax, edi
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
cmp ebx, 8
jne case.default.0x403c23
mov edx, 0x5d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, edi
mov edx, 0x40
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x402b2a
mov edx, 0x11
mov eax, edi
call fcn.0040294d
cmp dword [esi], 0x56
je 0x402b3c
cmp dword [esi + 0xc], 0
mov edx, 0x2e
jne 0x402b41
jmp 0x402b48
mov edx, 0x3a
mov eax, edi
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov edx, 0x4880e9
mov eax, edi
call fcn.0040259b
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
jne 0x402ba7
mov edx, str.default_arg
mov eax, edi
call fcn.0040259b
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402886
mov edx, 0x4880fa
mov eax, edi
call fcn.0040259b
mov ebx, dword [ebx + 0xc]
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
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 0x402be4
cmp dword [esp + 0x1c], 4
jne 0x402bf3
mov dword [edi + 0x118], 1
jmp case.default.0x403c23
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.00402028
test eax, eax
jne 0x402c32
cmp dword [esp + 0x18], 2
jne 0x402c8e
jmp 0x402c37
mov ebx, dword [ebx + 0xc]
jmp 0x402bd9
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
jne 0x402c42
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
shl eax, 4
lea edx, [esp + eax + 0x30]
test ebx, ebx
je 0x402be4
mov eax, dword [ebx]
call fcn.00402028
test eax, eax
je 0x402c8e
cmp dword [esp + 0x1c], 4
je 0x402be4
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 0x402c4d
cmp dword [ebx], 4
jne 0x402cbc
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 0x402cbc
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.0040294d
cmp dword [ebx], 4
jne 0x402cda
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 0x402d04
mov edx, 0x20
mov eax, edi
call fcn.0040251a
mov ecx, dword [esp + ebx + 0x24]
mov edx, 0x11
mov eax, edi
call fcn.0040418f
sub ebx, 0x10
jne 0x402ce1
mov eax, dword [esp + 0x14]
mov dword [edi + 0x114], eax
jmp case.default.0x403c23
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.0040294d
cmp byte [edi + 0x104], 0x3c
jne 0x402d5a
mov edx, 0x20
mov eax, edi
call fcn.0040251a
mov edx, 0x3c
mov eax, edi
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
cmp byte [edi + 0x104], 0x3e
jne 0x402d8a
mov edx, 0x20
mov eax, edi
call fcn.0040251a
mov eax, edi
mov edx, 0x3e
call fcn.0040251a
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], ebx
mov dword [edi + 0x148], eax
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, dword [edi + 0x120]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x402e04
mov eax, dword [edi + 0x110]
mov edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x402de7
test edx, edx
je 0x402dd7
mov eax, dword [eax + 0x10]
dec edx
jmp 0x402dc9
test eax, eax
je 0x402de7
cmp dword [eax], 0x5d
jne 0x402df6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x402df6
mov dword [edi + 0x118], 1
jmp case.default.0x403c23
mov edx, dword [eax]
mov eax, edi
call fcn.004028b7
jmp case.default.0x403c23
test eax, eax
je 0x402e2b
mov eax, edi
mov ecx, 5
mov edx, str.auto:
call fcn.00402558
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402886
jmp case.default.0x403c23
mov edx, esi
mov eax, edi
call fcn.00402739
test eax, eax
je 0x402de7
cmp dword [eax], 0x30
jne 0x402e4c
mov edx, dword [edi + 0x124]
call fcn.0040271b
test eax, eax
je 0x402de7
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.0040294d
mov dword [edi + 0x110], ebx
jmp case.default.0x403c23
mov eax, edi
mov edx, str.template_parameter_object_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, 0x7e
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.initializer_for_module
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.vtable_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.VTT_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.construction_vtable_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, edi
mov edx, str._in_
call fcn.0040259b
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.typeinfo_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.typeinfo_name_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.typeinfo_fn_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.non_virtual_thunk_to
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.virtual_thunk_to
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.covariant_return_thunk_to
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.java_Class_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.guard_variable_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.TLS_init_function_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.TLS_wrapper_function_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.reference_temporary_
call fcn.0040259b
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, edi
mov edx, 0x48824e
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.hidden_alias_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.transaction_clone_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.non_transaction_clone_for
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx + 0x10]
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.00402558
jmp case.default.0x403c23
mov ecx, dword [edi + 0x114]
test ecx, ecx
je 0x40329c
cmp dword [ecx + 8], 0
jne 0x40318e
mov eax, dword [ecx + 4]
mov eax, dword [eax]
lea edx, [eax - 0x19]
cmp edx, 2
ja 0x4032a0
cmp dword [esp + 0x18], eax
jne 0x40318e
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx]
jmp 0x403155
cmp dword [edi + 0x120], 0
mov ebx, dword [ecx + 0xc]
jne 0x403287
xor ecx, ecx
cmp dword [ebx], 5
mov dword [esp + 0x1c], ecx
jne 0x403287
mov eax, dword [edi + 0x134]
xor edx, edx
cmp edx, eax
jge 0x403207
mov ecx, dword [edi + 0x130]
lea ecx, [ecx + edx*8]
cmp ebx, dword [ecx]
je 0x4031cd
inc edx
jmp 0x4031b9
lea eax, [esp + 0x20]
mov edx, dword [eax]
cmp ebx, edx
je 0x403242
cmp esi, edx
jne 0x4031e3
lea edx, [esp + 0x20]
cmp eax, edx
jne 0x403242
mov eax, dword [eax + 4]
test eax, eax
jne 0x4031d1
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 0x403248
cmp eax, dword [edi + 0x138]
jge 0x404146
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 0x404152
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.00402739
mov ebx, eax
test eax, eax
je 0x40326d
cmp dword [eax], 0x30
jne 0x403287
mov edx, dword [edi + 0x124]
call fcn.0040271b
mov ebx, eax
test eax, eax
jne 0x403287
cmp dword [esp + 0x1c], 0
je 0x402de7
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp 0x402de7
mov eax, dword [ebx]
cmp eax, 0x24
je 0x4032a8
cmp dword [esp + 0x18], eax
je 0x4032a8
cmp eax, 0x25
jne case.0x4029c9.28
mov ecx, dword [ebx + 0xc]
mov ebx, esi
jmp 0x4032aa
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 0x4032d9
mov ecx, dword [ebx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
cmp dword [esp + 0x38], 0
jne 0x4032fa
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040418f
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
mov dword [edi + 0x114], eax
je case.default.0x403c23
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], eax
jmp case.default.0x403c23
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.00402558
jmp case.default.0x403c23
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, edi
call fcn.00402558
movsx edx, word [esi + 0x10]
mov eax, edi
call fcn.00402886
cmp byte [esi + 0x12], 0
je case.default.0x403c23
lea edx, [esi + 0x12]
mov ecx, 1
mov eax, edi
call fcn.00402558
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4033da
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.0040294d
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x403c23
mov edx, 0x20
mov eax, edi
call fcn.0040251a
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.004042d8
jmp case.default.0x403c23
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 0x403485
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
ja 0x403485
cmp dword [eax + 8], 0
jne 0x403481
cmp ebx, 3
jbe 0x403456
mov dword [edi + 0x118], 1
jmp case.default.0x403c23
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 0x40342b
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
mov dword [edi + 0x114], eax
jne case.default.0x403c23
cmp ebx, 1
jbe 0x4034c6
dec ebx
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esp + eax + 0x34]
mov eax, edi
call fcn.0040418f
jmp 0x4034a9
mov eax, dword [edi + 0x114]
mov ecx, esi
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040453e
jmp case.default.0x403c23
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.0040294d
cmp dword [esp + 0x38], 0
jne 0x40352e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040418f
mov eax, dword [esp + 0x30]
mov dword [edi + 0x114], eax
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x403550
mov edx, 0x11
mov eax, edi
call fcn.0040294d
cmp dword [esi + 0x10], 0
je case.default.0x403c23
cmp dword [edi + 0x100], 0xfd
jbe 0x40356d
mov eax, edi
call fcn.004024dc
mov edx, 0x4880e6
mov eax, edi
call fcn.0040259b
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.0040294d
mov eax, dword [esp + 0x1c]
cmp eax, dword [edi + 0x128]
jne case.default.0x403c23
cmp ebx, dword [edi + 0x100]
jne case.default.0x403c23
sub ebx, 2
mov dword [edi + 0x100], ebx
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov ebx, dword [esi + 0x10]
test ecx, ecx
je 0x4035d8
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov eax, edi
mov edx, 0x7b
call fcn.0040251a
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040294d
mov edx, 0x7d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov ebx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x488298
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
call fcn.0040259b
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov al, byte [eax]
sub eax, 0x61
cmp al, 0x19
ja 0x403639
mov edx, 0x20
mov eax, edi
call fcn.0040251a
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
cmp byte [edx + ecx - 1], 0x20
jne 0x403644
dec ecx
mov eax, edi
call fcn.00402558
jmp case.default.0x403c23
mov eax, edi
mov edx, str.operator
call fcn.0040259b
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.operator
call fcn.0040259b
mov eax, dword [edi + 0x148]
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x4036a1
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.0040294d
cmp dword [edi + 0x148], 0
je case.default.0x403c23
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.004045fd
jmp case.default.0x403c23
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
cmp eax, 0x33
jne 0x4037eb
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 4], 0x4882ab
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 0x403730
cmp eax, 3
jne 0x403730
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jne 0x403759
mov edx, dword [ebx + 0x10]
cmp dword [edx], 0x2a
jne 0x403759
mov ebx, eax
jmp 0x403759
cmp eax, 0x3a
jne 0x403759
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040461a
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.004045fd
jmp case.default.0x403c23
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x4882ae
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40378d
mov edx, ebx
mov eax, edi
call fcn.0040275b
call fcn.00402581
mov edx, eax
mov eax, edi
call fcn.00402886
jmp case.default.0x403c23
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x4882b1
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, eax
test eax, eax
jne 0x4037f6
test ebx, ebx
je 0x4037dd
cmp dword [ebx], 0x30
jne 0x4037dd
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4037dd
cmp dword [eax], 0x4d
jne 0x4037d7
mov edx, dword [eax + 0xc]
mov eax, edi
mov dword [esp + 0x1c], ecx
call fcn.0040275b
call fcn.00402581
mov ecx, dword [esp + 0x1c]
add ecx, eax
jmp 0x4037d8
inc ecx
mov ebx, dword [ebx + 0x10]
jmp 0x4037a7
mov edx, ecx
mov eax, edi
call fcn.00402886
jmp case.default.0x403c23
cmp eax, 0x35
je 0x403812
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.004045fd
cmp dword [esp + 0x1c], 0
jne 0x403842
jmp 0x4038c8
mov eax, edi
mov edx, 0x28
call fcn.0040251a
mov eax, dword [esp + 0x18]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040294d
mov edx, 0x29
mov eax, edi
call fcn.0040251a
jmp 0x4038c8
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x4882b4
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40386d
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x4882b7
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40389d
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x4882ba
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4038c8
mov eax, edi
mov edx, 0x28
call fcn.0040251a
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040294d
mov edx, 0x29
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040461a
jmp case.default.0x403c23
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3a
jne 0x402de7
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + 0xc]
call fcn.00402929
test eax, eax
je 0x40394f
mov eax, edi
mov edx, 0x11
call fcn.004045fd
mov eax, edi
mov edx, 0x3c
call fcn.0040251a
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040294d
mov eax, edi
mov edx, 0x4882bd
call fcn.0040259b
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040294d
mov edx, 0x29
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.00404680
test eax, eax
jne case.default.0x403c23
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.004047b4
test eax, eax
jne case.default.0x403c23
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne 0x4039a0
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x4039a0
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x4039a0
mov edx, 0x28
mov eax, edi
call fcn.0040251a
mov dword [esp + 4], 0x4882c0
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 0x4039dc
cmp dword [ecx], 3
jne 0x4039dc
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x4039d9
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040461a
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
mov dword [esp + 4], 0x4882c3
mov dword [esp], edx
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x1c]
test eax, eax
jne 0x403a38
mov eax, edi
mov edx, 0x5b
call fcn.0040251a
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040294d
mov edx, 0x5d
mov eax, edi
call fcn.0040251a
jmp 0x403a6c
mov dword [esp + 4], 0x4882c0
mov dword [esp], edx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x403a5a
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.004045fd
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040461a
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
jne case.default.0x403c23
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x403c23
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x403c23
mov edx, 0x29
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov dword [edi + 0x118], 1
jmp case.default.0x403c23
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x3c
jne 0x402de7
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne 0x402de7
mov edx, 0x11
mov eax, edi
call fcn.00404680
test eax, eax
jne case.default.0x403c23
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.004047b4
test eax, eax
jne case.default.0x403c23
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], 0x4882c6
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 0x403b79
mov eax, edi
mov edx, 0x11
call fcn.0040461a
mov ecx, ebx
mov eax, edi
mov edx, 0x11
call fcn.004045fd
mov ecx, dword [esp + 0x18]
mov eax, edi
mov edx, 0x11
call fcn.0040461a
mov eax, edi
mov edx, 0x4882c9
call fcn.0040259b
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.0040461a
jmp case.default.0x403c23
mov edx, 0x4882cd
mov eax, edi
mov dword [esp + 0x14], ecx
call fcn.0040259b
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x403bab
mov edx, 0x11
mov eax, edi
call fcn.0040461a
mov edx, 0x20
mov eax, edi
call fcn.0040251a
mov ecx, dword [esp + 0x18]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
cmp dword [esp + 0x1c], 0
je case.default.0x403c23
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
call fcn.0040461a
jmp case.default.0x403c23
cmp ebx, 7
je 0x403c7f
jmp 0x402a76
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x402a76
cmp dword [esp + 0x18], 0x3f
jne 0x403c08
mov edx, 0x2d
mov eax, edi
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040294d
cmp ebx, 4
ja case.default.0x403c23
jmp dword [ebx*4 + 0x48851c]
mov edx, 0x75
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov edx, 0x6c
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov edx, 0x4882d2
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov edx, 0x4882d5
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov edx, 0x4882d8
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0
jne 0x402a76
cmp dword [eax + 0x10], 1
jne 0x402a76
cmp dword [esp + 0x18], 0x3e
jne 0x402a76
mov eax, dword [eax + 0xc]
mov al, byte [eax]
cmp al, 0x30
je 0x403cc2
cmp al, 0x31
jne 0x402a76
mov edx, 0x4882e2
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov edx, 0x4882dc
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
xor ebx, ebx
jmp 0x402a76
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, edi
mov edx, 0x28
call fcn.0040251a
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, 0x29
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov edx, dword [ecx + 0xc]
mov eax, edi
call fcn.00402886
jmp case.default.0x403c23
mov eax, edi
mov edx, str.java_resource
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
movsx edx, byte [ecx + 0xc]
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov eax, edi
mov edx, str.decltype__
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, 0x29
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov eax, dword [ecx + 0xc]
mov ebx, dword [edi + 0x120]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x403dd5
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.0040461a
mov edx, 0x488301
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov edx, dword [esp + 0x1c]
mov eax, edi
call fcn.0040275b
test eax, eax
je 0x403db4
call fcn.00402581
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], ebx
je case.default.0x403c23
test ebx, ebx
je 0x403e07
mov edx, 0x4880e6
mov eax, edi
call fcn.0040259b
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x1c]
mov edx, 0x11
mov eax, edi
inc ebx
call fcn.0040294d
jmp 0x403ded
mov ebx, dword [ecx + 0xc]
test ebx, ebx
jne 0x403e38
mov edx, 0x488305
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov eax, edi
mov edx, str.parm
call fcn.0040259b
mov edx, ebx
mov eax, edi
call fcn.00402886
mov edx, 0x7d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov eax, edi
mov edx, str.global_constructors_keyed_to
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov eax, edi
mov edx, str.global_destructors_keyed_to
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
jmp case.default.0x403c23
mov edx, str.lambda
mov eax, edi
call fcn.0040259b
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 0x403f7d
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0x59
jne 0x403f7d
mov dword [esp + 0x34], eax
mov edx, 0x3c
mov eax, edi
call fcn.0040251a
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x403f66
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x403f2d
mov edx, 0x4880e6
mov eax, edi
call fcn.0040259b
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov edx, 0x20
mov eax, edi
call fcn.0040251a
cmp dword [ebx], 0x5d
jne 0x403f4f
mov ebx, dword [ebx + 0xc]
mov eax, dword [edi + 0x120]
mov edx, dword [ebx]
lea ecx, [eax - 1]
mov eax, edi
call fcn.004028b7
mov ebx, dword [ebx + 0x10]
jmp 0x403f0a
mov eax, edi
mov edx, 0x3e
call fcn.0040251a
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.0040251a
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, dword [esp + 0x18]
mov edx, 0x488354
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 0x110], eax
mov eax, edi
call fcn.0040259b
mov eax, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402886
mov edx, 0x7d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov eax, edi
mov edx, str.unnamed_type
call fcn.0040259b
mov eax, dword [esi + 0xc]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402886
mov edx, 0x7d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov eax, edi
mov edx, str.__clone
call fcn.0040259b
mov ecx, dword [esi + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, 0x5d
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, str._friend_
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov eax, edi
mov edx, 0x3c
call fcn.0040251a
xor eax, eax
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x4040a5
cmp dword [esp + 0x1c], 0
je 0x40408e
mov edx, 0x4880e6
mov eax, edi
call fcn.0040259b
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040294d
inc dword [esp + 0x1c]
mov ebx, dword [ebx + 0x10]
jmp 0x404077
mov edx, 0x3e
mov eax, edi
call fcn.0040251a
jmp case.default.0x403c23
mov edx, str.typename
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov eax, edi
mov edx, str.template
call fcn.0040259b
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, str._class
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040294d
mov edx, 0x488301
mov eax, edi
call fcn.0040259b
jmp case.default.0x403c23
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov edx, str._requires
mov eax, edi
call fcn.0040259b
mov ecx, dword [esi + 0x10]
mov edx, 0x11
mov eax, edi
call fcn.0040294d
mov eax, dword [esp + 0x24]
mov dword [edi + 0x12c], eax
dec dword [esi + 4]
dec dword [edi + 0x11c]
jmp 0x404187
mov dword [edi + 0x118], 1
jmp case.default.0x403c23
mov eax, dword [edi + 0x140]
cmp eax, dword [edi + 0x144]
jge 0x404146
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 0x403232
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret