Function at 0x405af0
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, 0x110
mov eax, dword [0x44a0e8]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je case.0x405b2c.45
mov ebx, dword [edi + 0x118]
test ebx, ebx
jne case.default.0x40a0be
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
cmp esi, 0x5f
ja case.0x405b2c.45
jmp dword [esi*4 + 0x433c3c]
lea esi, [edx - 0x52]
cmp esi, 1
ja 0x407d5e
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x40a2d2
add eax, 0x10
cmp dword [esp + 0x28], 4
jne 0x409618
mov dword [edi + 0x114], ecx
nop
mov dword [edi + 0x118], 1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a1e0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x38]
movd xmm0, dword [edi + 0x114]
movd xmm1, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
punpckldq xmm0, xmm1
mov dword [esp + 0x44], eax
movd eax, xmm1
movq qword [esp + 0x38], xmm0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov edx, 0x11
mov eax, edi
call fcn.0040a500
mov esi, dword [esp + 0x40]
test esi, esi
je 0x408eb1
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
test ebx, ebx
je case.default.0x40a0be
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.default.0x40a0be
mov ecx, dword [edi + 0x114]
mov eax, ecx
test ecx, ecx
je 0x40a1ac
mov dword [esp + 0x28], ebx
lea esi, [esi]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x405c3c
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ebx, [edx - 0x19]
cmp ebx, 2
ja 0x405c42
cmp esi, edx
je 0x409776
mov eax, dword [eax]
test eax, eax
jne 0x405c20
lea eax, [esp + 0x38]
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
jmp 0x405bc7
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3c2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x120]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x4091db
xor ebx, ebx
cmp dword [eax], 5
je 0x409c9a
mov edx, dword [eax]
cmp edx, 0x24
je 0x409595
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x110]
cmp esi, edx
je 0x4097e1
cmp edx, 0x25
je 0x408ec6
movd xmm0, dword [esp + 0x24]
movd xmm7, dword [esp + 0x2c]
punpckldq xmm0, xmm7
lea eax, [esp + 0x38]
mov dword [esp + 0x40], 0
mov dword [edi + 0x114], eax
mov dword [esp + 0x44], ecx
movq qword [esp + 0x38], xmm0
jmp 0x405bc7
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x405d4f
mov edx, 0x11
mov eax, edi
call fcn.0040a500
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je case.default.0x40a0be
mov eax, dword [edi + 0x100]
cmp eax, 0xfd
ja 0x4097b0
mov edx, 0x433995
mov eax, edi
call fcn.00402090
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, dword [edi + 0x128]
mov esi, dword [edi + 0x100]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
cmp dword [edi + 0x128], ebx
jne case.default.0x40a0be
mov eax, dword [edi + 0x100]
cmp eax, esi
jne case.default.0x40a0be
sub eax, 2
mov dword [edi + 0x100], eax
jmp case.default.0x40a0be
lea eax, [esp + 0x38]
movd xmm0, dword [edi + 0x114]
movd xmm3, dword [esp + 0x2c]
mov dword [esp + 0x40], 0
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
mov edx, 0x11
punpckldq xmm0, xmm3
mov dword [esp + 0x44], eax
movd eax, xmm3
mov ecx, dword [eax + 0x10]
movq qword [esp + 0x38], xmm0
mov eax, edi
call fcn.0040a500
mov esi, dword [esp + 0x40]
test esi, esi
je 0x4095d7
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
jmp case.default.0x40a0be
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, dword [esi + 0xc]
call fcn.0040a500
mov edx, 0x433998
mov eax, edi
call fcn.00402090
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
je 0x409946
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a458
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x28
jne 0x409366
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x40964b
test ebx, ebx
je 0x405ebc
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x40a08e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409b94
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov edx, 0x11
mov byte [edi + eax], 0x28
mov eax, edi
mov byte [edi + 0x104], 0x28
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409b5f
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x29
cmp dword [eax], 0x3f
je 0x409b4e
cmp ebx, 8
je 0x409b09
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a408
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x40936d
mov edx, 0x11
mov eax, edi
call fcn.0040a500
cmp dword [ebx], 0x56
je 0x409376
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x405faf
mov ebx, 0x2e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409ded
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3cc
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a412
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bb80
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
test ecx, ecx
je 0x406023
mov edx, 0x11
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x4099dd
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, ebx
mov edx, 0x11
mov byte [edi + eax], 0x7b
mov eax, edi
mov byte [edi + 0x104], 0x7b
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x4099a8
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40a0be
mov eax, dword [edi + 0x100]
mov ebx, str.global_destructors_keyed_to
mov esi, 0x433be9
jmp 0x4060b7
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408b0e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406098
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433be9
je 0x408b0e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40609a
mov eax, dword [edi + 0x100]
mov ebx, str.template_parameter_object_for
mov esi, 0x4339d2
jmp 0x40615b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x4339d2
je 0x408b3b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406138
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408b3b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40613a
mov eax, dword [edi + 0x100]
mov ebx, str.guard_variable_for
mov esi, 0x433ab6
jmp 0x4061f7
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408a7b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4061d8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433ab6
je 0x408a7b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4061da
mov eax, dword [edi + 0x100]
mov ebx, str.non_virtual_thunk_to
mov esi, 0x433a65
jmp 0x406297
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408bef
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406278
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a65
je 0x408bef
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40627a
mov eax, dword [edi + 0x100]
mov ebx, str.covariant_return_thunk_to
mov esi, 0x433a92
jmp 0x406337
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408c46
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406318
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a92
je 0x408c46
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40631a
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_name_for
jmp 0x4063d3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a3e
je 0x408ca0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4063b0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a3e
je 0x408ca0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4063b2
mov eax, dword [edi + 0x100]
mov ebx, str.java_Class_for
mov esi, 0x433aa2
jmp 0x40646f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408cfa
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406450
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433aa2
je 0x408cfa
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406452
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_fn_for
mov esi, 0x433a4f
jmp 0x40650f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408d54
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4064f0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408d54
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4064f2
mov eax, dword [edi + 0x100]
mov ebx, str.virtual_thunk_to
mov esi, 0x433a77
jmp 0x4065a7
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408e42
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406588
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a77
je 0x408e42
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40658a
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_for
mov esi, 0x433a2b
jmp 0x40664b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a2b
je 0x408e6f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406628
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408e6f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40662a
mov eax, dword [edi + 0x100]
mov ebx, str.construction_vtable_for
mov esi, 0x433a18
jmp 0x4066eb
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433a18
je 0x408606
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4066c8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408606
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4066ca
mov eax, dword [edi + 0x100]
mov ebx, str.non_transaction_clone_for
mov esi, 0x433b47
jmp 0x406787
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4087e2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406768
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4087e2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40676a
mov eax, dword [edi + 0x100]
mov ebx, str.vtable_for
mov esi, 0x4339f6
jmp 0x40681f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408708
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406800
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408708
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406802
mov eax, dword [edi + 0x100]
mov ebx, str.unnamed_type
mov esi, 0x433c03
jmp 0x4068bb
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433c03
je 0x408869
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406898
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408869
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40689a
mov eax, dword [edi + 0x100]
mov ebx, str.VTT_for
mov esi, 0x4339ff
jmp 0x406957
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4086ae
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406938
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4086ae
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40693a
mov eax, dword [edi + 0x100]
mov ebx, str.transaction_clone_for
mov esi, 0x433b2c
jmp 0x4069f3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433b2c
je 0x40880f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4069d0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40880f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4069d2
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409973
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7e
mov byte [edi + 0x104], 0x7e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a45d
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [edi + 0x100]
mov ebx, str.lambda
mov esi, 0x433bf1
jmp 0x406adf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408f00
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406ac0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409a47
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406ac2
mov eax, dword [edi + 0x100]
mov ebx, str.initializer_for_module
mov esi, 0x4339ea
jmp 0x406b77
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408ccd
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406b58
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408ccd
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406b5a
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409106
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
jmp case.default.0x40a0be
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str.__clone
mov esi, 0x433c0c
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x406c4f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4084e0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406c30
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4084e0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406c32
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._abi:
mov esi, 0x433994
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x406cff
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4084e0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406ce0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4084e0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406ce2
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x120]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x409174
mov edx, ecx
mov eax, edi
call fcn.00402140
xor edx, edx
test eax, eax
je 0x409174
lea esi, [esi]
cmp dword [eax], 0x30
jne 0x4097a3
mov esi, dword [eax + 0xc]
test esi, esi
je 0x4097a3
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
jne 0x406d90
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
lea esi, cs:[esi]
nop
mov dword [edi + 0x124], ebx
mov ecx, dword [esp + 0x24]
mov eax, edi
mov edx, 0x11
add ebx, 1
call fcn.0040a500
mov eax, dword [esp + 0x28]
cmp ebx, eax
je case.default.0x40a0be
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x100]
mov esi, 0x433995
jmp 0x406e24
mov ecx, eax
lea eax, [ecx + 1]
add esi, 1
mov edx, 0x433997
mov dword [edi + 0x100], eax
mov byte [edi + ecx], bl
mov byte [edi + 0x104], bl
cmp edx, esi
je 0x40851d
movzx ebx, byte [esi]
cmp eax, 0xff
jne 0x406e00
mov eax, dword [edi + 0x10c]
add esi, 1
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], bl
mov byte [edi + 0x104], bl
cmp esi, 0x433997
je 0x40851d
movzx ebx, byte [esi]
mov ecx, 1
jmp 0x406e02
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a44e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x4091e4
mov eax, dword [edi + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x409739
test eax, eax
je case.0x405b2c.45
mov edx, ecx
jmp 0x406ef8
test edx, edx
je 0x409739
mov eax, dword [eax + 0x10]
sub edx, 1
test eax, eax
jne 0x406ef0
jmp case.0x405b2c.45
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x148]
mov edx, 0x11
mov esi, dword [edi + 0x114]
mov dword [edi + 0x114], 0
mov dword [edi + 0x148], eax
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
cmp byte [edi + 0x104], 0x3c
je 0x409900
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x4098cb
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov edx, 0x11
mov byte [edi + eax], 0x3c
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x3c
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
cmp byte [edi + 0x104], 0x3e
je 0x4098ba
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409885
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
mov dword [edi + 0x114], esi
mov dword [edi + 0x148], ebx
jmp case.default.0x40a0be
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._friend_
mov esi, 0x433c15
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x40700b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433c15
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406fe8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406fea
mov eax, dword [edi + 0x100]
mov ebx, str.template
mov esi, 0x433c27
jmp 0x4070a7
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408735
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407088
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408735
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40708a
mov eax, dword [edi + 0x100]
mov ebx, str.typename
mov esi, 0x433c1e
jmp 0x40713f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407120
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433c1e
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407122
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409a9f
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3c
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x3c
mov esi, dword [eax + 0xc]
mov dword [esp + 0x2c], 0
test esi, esi
jne 0x40720e
jmp 0x408c1c
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040a500
mov esi, dword [esi + 0x10]
add dword [esp + 0x2c], 1
test esi, esi
je 0x408c1c
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4071f0
mov eax, dword [edi + 0x100]
mov ebx, 0x433995
jmp 0x407247
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433997
je 0x4071f0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407228
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433997
je 0x4071f0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40722a
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_init_function_for
mov esi, 0x433acd
jmp 0x4072e7
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40883c
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4072c8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433acd
je 0x40883c
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4072ca
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3c
jne case.0x405b2c.45
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne case.0x405b2c.45
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040c4c0
test eax, eax
jne case.default.0x40a0be
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040c8d0
test eax, eax
jne case.default.0x40a0be
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
mov esi, dword [eax + 0x10]
mov dword [esp + 4], 0x433b64
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x40a260
mov edx, 0x11
mov eax, edi
call fcn.0040c2c0
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040bb80
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040c2c0
mov eax, edi
mov edx, 0x433b67
call fcn.00402090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3b3
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c2c0
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
cmp dword [eax], 0x3a
jne case.0x405b2c.45
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 1], 0x63
je 0x409d65
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040c4c0
test eax, eax
jne case.default.0x40a0be
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040c8d0
test eax, eax
jne case.default.0x40a0be
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
je 0x40a1e5
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0x433b5e
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 0x4074cd
cmp dword [ecx], 3
je 0x40a23a
mov edx, 0x11
mov eax, edi
call fcn.0040c2c0
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
mov dword [esp + 4], 0x433b61
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40a179
mov dword [esp + 4], 0x433b5e
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40a355
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040c2c0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x33
jne case.default.0x40a0be
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x40a0be
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a43a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00401fc0
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, 0x33
je 0x409414
cmp eax, 0x35
je 0x40961f
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040bb80
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a476
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c2c0
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40a0be
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40760f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4075f0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, esi
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4075f2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._requires
mov esi, 0x433c39
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x4076bf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408c73
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4076a0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408c73
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4076a2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, 0x433b9f
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x40776b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433ba2
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407748
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433ba2
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40774a
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x433b5a
jmp 0x40780f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408d27
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4077f0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408d27
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4077f2
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x433b5a
jmp 0x4078a7
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408b68
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407888
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408b68
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40788a
mov eax, dword [esp + 0x2c]
mov ebx, 0x433b48
mov esi, 0x433b50
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x100]
jmp 0x40794f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408d81
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407930
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408d81
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407932
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x409280
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a426
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433ba3
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je case.default.0x40a0be
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x407a27
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407a08
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, esi
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407a0a
mov eax, dword [edi + 0x100]
mov ebx, str.hidden_alias_for
mov esi, 0x433b15
jmp 0x407abf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408bc2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407aa0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433b15
je 0x408bc2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407aa2
mov eax, dword [edi + 0x100]
mov ebx, str.java_resource
mov esi, 0x433b93
jmp 0x407b5f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408ad5
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407b40
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408ad5
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407b42
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a41c
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409911
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5b
mov byte [edi + 0x104], 0x5b
lea esi, cs:[esi]
nop
mov esi, dword [esp + 0x2c]
mov eax, edi
mov edx, 0x11
mov ecx, dword [esi + 0xc]
call fcn.0040a500
mov esi, dword [esi + 0x10]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x4084f9
mov ebx, 0x433995
mov esi, 0x433997
jmp 0x407c83
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x407c30
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407c68
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x407c30
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407c6a
mov eax, dword [edi + 0x114]
mov dword [edi + 0x114], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je case.0x405b2c.45
lea esi, [esp + 0x48]
mov eax, dword [edi + 0x110]
mov dword [esp + 0x28], 0
xor edx, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
mov eax, esi
mov dword [eax], edx
mov edx, dword [esp + 0x24]
mov ecx, eax
mov dword [eax + 8], 0
mov dword [eax + 0xc], edx
mov edx, dword [ebx]
add dword [esp + 0x28], 1
mov dword [eax + 4], ebx
cmp edx, 0x4f
je 0x405b3f
ja 0x405b33
lea esi, [edx - 0x1c]
cmp esi, 5
jbe 0x405b3f
mov dword [edi + 0x114], eax
mov esi, dword [esp + 0x20]
cmp edx, 2
je 0x409bd0
cmp edx, 4
je 0x409c58
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
cmp dword [ebx], 4
jne 0x407d9c
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
mov ebx, dword [esp + 0x28]
shl ebx, 4
add ebx, esi
mov eax, dword [ebx - 8]
test eax, eax
je 0x40913b
sub ebx, 0x10
cmp ebx, esi
jne 0x407da5
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], eax
jmp case.default.0x40a0be
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40a0be
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x407e07
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407de8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407dea
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409a12
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x40
mov byte [edi + 0x104], 0x40
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a430
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [edi + 0x100]
mov ebx, str.global_constructors_keyed_to
mov esi, 0x433bcc
jmp 0x407f0b
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433bcc
je 0x408975
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407ee8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408975
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407eea
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je 0x408526
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x407faf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408526
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407f90
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408526
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407f92
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40981b
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x28
mov eax, dword [esp + 0x2c]
mov byte [edi + 0x104], 0x28
mov ecx, dword [eax + 0x10]
mov eax, edi
mov edx, 0x11
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409380
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov byte [edi + 0x104], 0x29
jmp case.default.0x40a0be
mov edx, dword [edi + 0x114]
movd xmm2, dword [esp + 0x2c]
lea esi, [esp + 0x48]
mov dword [esp + 0x50], 0
mov eax, dword [edi + 0x110]
mov dword [edi + 0x114], esi
mov ecx, esi
mov ebx, 1
movd xmm0, edx
mov dword [esp + 0x28], edx
punpckldq xmm0, xmm2
mov dword [esp + 0x54], eax
mov eax, edx
movq qword [esp + 0x48], xmm0
test edx, edx
jne 0x408113
jmp 0x40a20f
mov edx, dword [eax + 8]
test edx, edx
jne 0x40810d
cmp ebx, 3
ja case.0x405b2c.45
movdqu xmm0, xmmword [eax]
mov edx, ebx
add ebx, 1
shl edx, 4
movups xmmword [esp + edx + 0x48], xmm0
mov dword [esp + edx + 0x48], ecx
lea ecx, [esi + edx]
mov dword [edi + 0x114], ecx
mov dword [eax + 8], 1
mov eax, dword [eax]
test eax, eax
je 0x408120
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
jbe 0x4080d8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
mov eax, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne case.default.0x40a0be
lea esi, [esp + 0x4c]
cmp ebx, 1
jbe 0x408174
lea esi, [esi]
sub ebx, 1
mov edx, 0x11
mov eax, ebx
shl eax, 4
mov ecx, dword [esi + eax]
mov eax, edi
call fcn.0040a5b0
cmp ebx, 1
jne 0x408158
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040b880
jmp case.default.0x40a0be
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4081fd
movd xmm4, eax
lea eax, [esp + 0x38]
mov edx, 0x11
movd xmm0, dword [edi + 0x114]
mov dword [edi + 0x114], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x40], 0
punpckldq xmm0, xmm4
mov dword [esp + 0x44], eax
mov eax, edi
movq qword [esp + 0x38], xmm0
call fcn.0040a500
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x114], eax
test ecx, ecx
jne case.default.0x40a0be
mov edx, 0x20
mov eax, edi
call fcn.00401fc0
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040b070
jmp case.default.0x40a0be
mov eax, dword [edi + 0x100]
mov ebx, str.decltype__
jmp 0x408253
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433b9e
je 0x408b02
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408230
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433b9e
je 0x408b02
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408232
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xa8]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x43363c
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00412ba0
test eax, eax
js 0x4082f7
add eax, 1
cmp eax, 0x19
ja 0x40940f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je case.default.0x40a0be
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x408337
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je case.default.0x40a0be
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x408318
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp esi, ebx
je case.default.0x40a0be
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40831a
mov eax, dword [edi + 0x100]
mov ebx, str.reference_temporary_
mov esi, 0x433afd
jmp 0x4083cf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4089a2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4083b0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433afd
je 0x4089a2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4083b2
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_wrapper_function_for
mov esi, 0x433ae7
jmp 0x40846f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408aa8
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408450
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433ae7
je 0x408aa8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408452
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x4091a6
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5d
mov byte [edi + 0x104], 0x5d
jmp case.default.0x40a0be
mov ebx, dword [esp + 0x2c]
jmp 0x406dc0
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x8f]
movsx eax, word [eax + 0x10]
mov dword [esp + 8], 0x43363c
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00412ba0
test eax, eax
js 0x408561
add eax, 1
cmp eax, 0x19
ja 0x40940f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x408e9c
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x40859f
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x408e9c
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x408580
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp ebx, esi
je 0x408e9c
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x408582
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._in_
mov esi, 0x433a1d
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x40864f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4086db
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408630
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x4086db
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408632
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a462
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a46c
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a453
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._class
mov esi, 0x433c2e
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x40877f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408760
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408762
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a467
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a43f
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a471
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xf3]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x43363c
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00412ba0
test eax, eax
js 0x4088a6
add eax, 1
cmp eax, 0x19
ja 0x40940f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x408950
lea esi, [ebx + eax]
jmp 0x4088e3
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x408950
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x4088c8
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x40956f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x4088ca
cmp edx, 0xff
je 0x4093b5
lea eax, [edx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + edx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3f4
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._for
mov esi, 0x433b03
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
mov eax, dword [edi + 0x100]
jmp 0x4089eb
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x408a4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4089d0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433b03
je 0x408a4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4089d2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4a7
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4d4
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a421
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a435
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
jmp 0x408051
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a403
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3d1
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x148]
test eax, eax
je 0x408b99
movd xmm0, dword [edi + 0x110]
movd xmm5, eax
lea eax, [esp + 0x38]
mov dword [edi + 0x110], eax
punpckldq xmm0, xmm5
movq qword [esp + 0x38], xmm0
mov edx, 0x11
mov eax, edi
call fcn.0040a500
mov ecx, dword [edi + 0x148]
test ecx, ecx
je case.default.0x40a0be
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
jmp case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4b6
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3bd
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [edi + 0x100]
lea edx, [eax + 1]
cmp eax, 0xff
je 0x409850
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
jmp case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3e0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4c0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3c7
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4ac
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3d6
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4bb
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3db
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx]
sub eax, 0x61
cmp al, 0x19
jbe 0x409579
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp byte [ebx + esi - 1], 0x20
cmove esi, eax
test esi, esi
je case.default.0x40a0be
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408ddf
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je case.default.0x40a0be
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408dc0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, esi
je case.default.0x40a0be
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408dc2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4c5
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a47b
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
mov eax, dword [esp + 0x2c]
movzx ebx, byte [eax + 0x12]
test bl, bl
je case.default.0x40a0be
jmp 0x406be1
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040a5b0
jmp 0x405be3
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], eax
test esi, esi
jne 0x405bc7
jmp 0x405c6e
mov esi, dword [esp + 0x2c]
mov edx, dword [edi + 0x110]
mov dword [esp + 0x3c], 0
mov ebx, dword [edi + 0x120]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x38]
mov dword [edi + 0x110], edx
mov edx, 1
mov dword [esp + 0x28], ebx
mov dword [edi + 0x120], 0
test esi, esi
je 0x408f49
cmp dword [esi], 0x59
je 0x409e57
mov dword [edi + 0x120], edx
cmp eax, 0xff
je 0x409ad4
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, esi
mov edx, 0x11
mov ebx, 0x433bf2
mov byte [edi + eax], 0x28
mov eax, edi
mov esi, 0x433bf4
mov byte [edi + 0x104], 0x28
call fcn.0040a500
mov eax, dword [esp + 0x28]
mov dword [edi + 0x120], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
mov eax, dword [edi + 0x100]
jmp 0x408fc3
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409026
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408fa8
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433bf4
je 0x409026
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408faa
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xda]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 0x43363c
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00412ba0
test eax, eax
js 0x409063
add eax, 1
cmp eax, 0x19
ja 0x40940f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x408950
lea esi, [ebx + eax]
jmp 0x40909f
mov ecx, edx
lea edx, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], edx
mov byte [edi + ecx], al
mov byte [edi + 0x104], al
cmp ebx, esi
je 0x408950
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409080
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp ebx, esi
je 0x40956f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409082
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x406bf5
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409e22
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, dword [ebx - 0xc]
mov edx, 0x11
mov byte [edi + eax], 0x20
mov eax, edi
mov byte [edi + 0x104], 0x20
call fcn.0040a5b0
jmp 0x407db0
mov eax, edi
mov edx, 0x11
call fcn.0040c2c0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3e5
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433b9f
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x408507
mov eax, dword [esp + 0x28]
jmp 0x405cd4
test eax, eax
je 0x4096b8
mov eax, dword [edi + 0x100]
mov ebx, str.auto:
mov esi, 0x4339b2
jmp 0x40921d
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40970e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4091fe
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x40970e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409200
mov edx, str.parm
mov eax, edi
call fcn.00402090
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0xc1]
mov dword [esp + 8], 0x43363c
mov dword [esp + 4], 0x19
mov dword [esp], ebx
call fcn.00412ba0
test eax, eax
js 0x4092bf
add eax, 1
cmp eax, 0x19
ja 0x40940f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [edi + 0x100]
mov esi, eax
test eax, eax
je 0x4093ea
add esi, ebx
jmp 0x4092ff
mov edx, ecx
lea ecx, [edx + 1]
add ebx, 1
mov dword [edi + 0x100], ecx
mov byte [edi + edx], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x4093ea
movzx eax, byte [ebx]
cmp ecx, 0xff
jne 0x4092e0
mov edx, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x2c], al
mov dword [esp + 8], edx
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx eax, byte [esp + 0x2c]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], al
mov byte [edi + 0x104], al
cmp esi, ebx
je 0x409ffa
movzx eax, byte [ebx]
mov edx, 1
jmp 0x4092e2
xor ebx, ebx
jmp 0x405ebc
cmp esi, 0x56
jne 0x405faf
mov ebx, 0x3a
jmp 0x405f8c
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x408071
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov eax, 1
xor edx, edx
jmp 0x40895f
cmp ecx, 0xff
je 0x409f43
lea eax, [ecx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + ecx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40a0be
call fcn.00412ae0
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
movzx eax, byte [ecx]
mov dword [esp + 0x2c], ecx
mov edx, eax
sub edx, 0x61
jne 0x409434
movzx edx, byte [ecx + 1]
sub edx, 0x64
jne 0x409434
movzx edx, byte [ecx + 2]
mov ecx, dword [ebx]
test edx, edx
jne 0x409443
cmp ecx, 3
je 0x40a04c
cmp ecx, 0x3a
je 0x40a142
cmp eax, 0x73
jne 0x4094c0
mov edx, dword [esp + 0x2c]
cmp byte [edx + 1], 0x5a
jne 0x409f73
movzx ecx, byte [edx + 2]
test ecx, ecx
jne 0x409f73
mov edx, ebx
mov eax, edi
call fcn.00402140
test eax, eax
jne 0x409491
jmp 0x409496
mov edx, dword [eax + 0xc]
test edx, edx
je 0x409496
mov eax, dword [eax + 0x10]
add ecx, 1
test eax, eax
je 0x409496
cmp dword [eax], 0x30
je 0x409480
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3f9
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004022a0
mov ecx, esi
mov eax, edi
mov edx, 0x11
call fcn.0040bb80
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp eax, 0x67
jne 0x40950e
cmp byte [esi + 1], 0x73
jne 0x40950e
cmp byte [esi + 2], 0
jne 0x40950e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3fe
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
cmp eax, 0x73
jne 0x4095ec
mov esi, dword [esp + 0x2c]
cmp byte [esi + 1], 0x74
jne 0x4095ec
cmp byte [esi + 2], 0
jne 0x4095ec
mov edx, 0x28
mov eax, edi
call fcn.00401fc0
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a40d
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00401fc0
mov edx, 1
jmp 0x40895c
mov edx, 0x20
mov eax, edi
mov dword [esp + 0x2c], ecx
call fcn.00401fc0
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 4]
jmp 0x408d96
movd xmm0, dword [edi + 0x114]
movd xmm6, eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x2c], eax
mov edx, dword [edi + 0x110]
mov dword [edi + 0x114], ecx
punpckldq xmm0, xmm6
mov dword [esp + 0x40], 0
movq qword [esp + 0x38], xmm0
mov esi, dword [eax + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], esi
jmp 0x405bc7
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040a5b0
jmp 0x405e1b
cmp eax, 0x6e
jne 0x4075ac
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x78
jne 0x4075ac
cmp byte [eax + 2], 0
je 0x40952f
jmp 0x4075ac
mov edx, ecx
jmp 0x407d27
mov eax, edi
mov edx, 0x28
call fcn.00401fc0
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040a500
mov edx, 0x29
mov eax, edi
call fcn.00401fc0
jmp 0x4075ac
cmp ebx, 7
jne 0x405ebc
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
jne 0x405ebc
cmp dword [eax + 0x10], 1
jne 0x405ebc
cmp esi, 0x3e
jne 0x405ebc
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
cmp al, 0x30
je 0x40a485
cmp al, 0x31
jne 0x405ebc
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a480
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.true
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
mov edx, dword [esp + 0x2c]
mov eax, edi
call fcn.00402030
test eax, eax
je case.0x405b2c.45
cmp dword [eax], 0x30
jne 0x4096e7
mov edx, dword [edi + 0x124]
test edx, edx
js 0x4096e7
call fcn.00401e70
test eax, eax
je case.0x405b2c.45
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.0040a500
mov dword [edi + 0x110], ebx
jmp case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a449
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
add edx, 1
pop edi
pop ebp
jmp fcn.004022a0
test eax, eax
je case.0x405b2c.45
mov edx, dword [eax]
cmp edx, 0x5d
jne 0x409755
mov eax, dword [eax + 0xc]
test eax, eax
je case.0x405b2c.45
mov edx, dword [eax]
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4d9
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004023a0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3b8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a500
test edx, edx
jne 0x406dae
jmp case.default.0x40a0be
mov byte [edi + eax], 0
mov edx, dword [edi + 0x10c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 0
jmp 0x405d6f
movd xmm0, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
movd xmm6, eax
punpckldq xmm0, xmm6
mov dword [esp + 0x40], 0
lea edx, [esp + 0x38]
movq qword [esp + 0x38], xmm0
mov eax, dword [eax + 0xc]
mov dword [edi + 0x114], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], eax
jmp 0x405bc7
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x408039
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x408c30
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x406f9c
mov edx, 0x20
mov eax, edi
call fcn.00401fc0
jmp 0x406f88
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x406f57
mov edx, 0x20
mov eax, edi
call fcn.00401fc0
jmp 0x406f43
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x407c16
mov edx, str.default_arg
mov eax, edi
call fcn.00402090
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.004022a0
mov edx, 0x4339a9
mov eax, edi
call fcn.00402090
mov ebx, dword [ebx + 0xc]
jmp 0x405e5b
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x406a6d
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40606a
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x406037
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x407e91
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], 0
mov esi, dword [eax + 0xc]
mov eax, dword [edi + 0x120]
mov dword [edi + 0x120], 0
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [edi + 0x110], eax
test esi, esi
je 0x409a8b
cmp dword [esi], 0x59
je 0x409e57
mov dword [edi + 0x120], 1
mov eax, 1
jmp 0x408f5a
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x4071bd
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x408f5d
mov edx, 0x5b
mov eax, edi
call fcn.00401fc0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a444
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x5d
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00401fc0
mov edx, 0x2d
mov eax, edi
call fcn.00401fc0
jmp 0x405f1f
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x405f01
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
mov eax, dword [esp + 0x2c]
mov edx, 1
add dword [edi + 0x128], 1
mov ecx, dword [eax + 0xc]
xor eax, eax
jmp 0x405ed0
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
je 0x40a03c
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [esi + eax]
mov eax, dword [ebx]
cmp eax, 0x4f
je 0x409c06
ja 0x409bfe
lea edx, [eax - 0x1c]
cmp edx, 5
jbe 0x409c06
mov edx, eax
jmp 0x407d71
lea edx, [eax - 0x52]
cmp edx, 1
ja 0x409bf7
cmp dword [esp + 0x28], 4
je case.0x405b2c.45
movdqu xmm0, xmmword [ecx - 0x10]
lea eax, [ecx - 0x10]
mov dword [ecx - 0xc], ebx
movd xmm6, eax
mov dword [ecx - 8], 0
movups xmmword [ecx], xmm0
movd xmm0, dword [esp + 0x24]
mov dword [edi + 0x114], ecx
add ecx, 0x10
punpckldq xmm0, xmm6
add dword [esp + 0x28], 1
movq qword [ecx - 0x14], xmm0
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x409be6
jmp case.0x405b2c.45
movd xmm0, dword [esp + 0x24]
movd xmm7, ebx
lea eax, [esp + 0x38]
mov dword [edi + 0x110], eax
punpckldq xmm0, xmm7
movq qword [esp + 0x38], xmm0
mov eax, dword [ebx + 0x10]
cmp dword [eax], 0x5e
jne 0x407d7a
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x10], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0xc], edx
mov dword [ecx + 0x10], eax
jmp 0x407d7a
mov edx, dword [edi + 0x134]
test edx, edx
jle 0x40a2dd
mov ebx, dword [edi + 0x130]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x409cce
add eax, 1
add ebx, 8
cmp edx, eax
je 0x40a2dd
cmp ecx, dword [ebx]
jne 0x409cc0
mov ecx, dword [edi + 0x12c]
mov eax, ecx
test ecx, ecx
je 0x40a00c
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
jmp 0x409d0b
cmp ecx, eax
je 0x409d00
cmp edx, esi
je 0x409d11
mov eax, dword [eax + 4]
test eax, eax
je 0x40a004
mov edx, dword [eax]
cmp edx, ebx
jne 0x409cf8
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, edi
xor ebx, ebx
call fcn.00402030
test eax, eax
je case.0x405b2c.45
cmp dword [eax], 0x30
jne 0x405cd4
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40a368
call fcn.00401e70
test eax, eax
jne 0x405cd4
test ebx, ebx
je case.0x405b2c.45
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.0x405b2c.45
movzx eax, byte [eax]
lea edx, [eax - 0x72]
cmp dl, 1
jbe 0x409d7b
sub eax, 0x63
cmp al, 1
ja 0x407462
mov edx, 0x11
mov eax, edi
call fcn.0040bb80
mov edx, 0x3c
mov eax, edi
call fcn.00401fc0
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a500
mov edx, 0x433b5b
mov eax, edi
call fcn.00402090
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3ea
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00401fc0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x405fa0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x40914f
mov dword [esp + 0x3c], esi
mov edx, 0x3c
mov eax, edi
call fcn.00401fc0
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x409eca
jmp 0x409f20
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040a500
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409eeb
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x20
mov byte [edi + 0x104], 0x20
mov edx, dword [ebx]
cmp edx, 0x5d
jne 0x409eb3
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edi + 0x120]
lea ecx, [eax - 1]
mov eax, edi
call fcn.004023a0
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x409f20
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x409e78
mov edx, 0x433995
mov eax, edi
call fcn.00402090
jmp 0x409e78
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
mov edx, 1
xor eax, eax
jmp 0x409e96
mov edx, 0x3e
mov eax, edi
call fcn.00401fc0
mov eax, dword [edi + 0x120]
mov esi, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, dword [edi + 0x100]
jmp 0x408f49
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
mov dword [esp + 4], 0xff
mov dword [esp + 8], eax
mov dword [esp], edi
call dword [edi + 0x108]
add dword [edi + 0x128], 1
xor ecx, ecx
jmp 0x4093f6
cmp eax, 0x73
jne 0x4094c0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x50
jne 0x4094c0
xor ecx, ecx
cmp byte [eax + 2], 0
je 0x409fae
jmp 0x4094c0
add ecx, 1
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40a06b
cmp dword [ebx], 0x30
jne 0x40a06b
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40a06b
cmp dword [eax], 0x4d
jne 0x409fa0
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00402140
xor edx, edx
test eax, eax
jne 0x409ff1
jmp 0x409ff6
mov esi, dword [eax + 0xc]
test esi, esi
je 0x409ff6
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
je 0x409ff6
cmp dword [eax], 0x30
je 0x409fe0
add ecx, edx
jmp 0x409fa3
mov ecx, 1
jmp 0x4093f6
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edi + 0x110]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x110], eax
mov eax, edi
call fcn.00402030
test eax, eax
je 0x409d56
mov ebx, 1
jmp 0x409d2a
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x409bdc
jmp case.0x405b2c.45
mov edx, dword [ebx + 0xc]
cmp dword [edx], 1
jne 0x40944c
mov ecx, dword [ebx + 0x10]
cmp dword [ecx], 0x2a
jne 0x40944c
mov ebx, edx
jmp 0x40944c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4e8
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004022a0
cmp esi, 0x3f
je 0x40a38e
mov ecx, eax
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040a500
cmp ebx, 4
ja case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jmp dword [ebx*4 + 0x433dbc]
jne 0x40a4ca
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433b73
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
jne 0x40a4cf
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433b70
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
jne 0x40a4de
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00401fc0
jne 0x40a4e3
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x75
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00401fc0
jne 0x40a417
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433b76
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040c2c0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a3ef
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040bb80
mov eax, edi
mov edx, 0x5b
call fcn.00401fc0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
mov edx, 0x5d
mov eax, edi
call fcn.00401fc0
jmp 0x40752b
lea eax, [esp + 0x38]
xor esi, esi
mov dword [edi + 0x114], eax
xor eax, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x110]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
jmp 0x405bc7
call fcn.00412b40
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x40749e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x40749e
mov edx, 0x28
mov eax, edi
call fcn.00401fc0
jmp 0x40749e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a500
xor eax, eax
cmp dword [esp + 0x50], 0
mov dword [edi + 0x114], eax
je 0x408174
jmp case.default.0x40a0be
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x40a24c
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040c2c0
jmp 0x4074d9
mov edx, str.new
mov eax, edi
mov dword [esp + 0x28], ecx
call fcn.00402090
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], 0
je 0x40a292
mov edx, 0x11
mov eax, edi
call fcn.0040c2c0
mov edx, 0x20
mov eax, edi
call fcn.00401fc0
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040a500
test esi, esi
je case.default.0x40a0be
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a42b
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c2c0
mov dword [edi + 0x114], eax
jmp case.0x405b2c.45
cmp edx, dword [edi + 0x138]
jge case.0x405b2c.45
mov eax, dword [edi + 0x130]
mov ebx, dword [esp + 0x28]
lea eax, [eax + edx*8]
add edx, 1
mov dword [edi + 0x134], edx
mov dword [eax], ebx
lea ebx, [eax + 4]
mov eax, dword [edi + 0x110]
test eax, eax
je 0x40a3aa
mov edx, dword [edi + 0x144]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x140]
jmp 0x40a34a
mov ecx, dword [edi + 0x13c]
mov esi, dword [eax + 4]
lea ecx, [ecx + edx*8]
add edx, 1
mov dword [edi + 0x140], edx
mov dword [ecx + 4], esi
mov dword [ebx], ecx
mov eax, dword [eax]
mov ebx, ecx
test eax, eax
je 0x40a3a6
cmp dword [esp + 0x24], edx
jg 0x40a328
jmp case.0x405b2c.45
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040bb80
jmp 0x407515
movd xmm0, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
cmp esi, 0x30
je 0x40a4ed
movd xmm6, dword [esp + 0x2c]
punpckldq xmm0, xmm6
jmp 0x405d10
mov eax, edi
mov edx, 0x2d
call fcn.00401fc0
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
jmp 0x40a097
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx], eax
jmp 0x409d15
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44a0e8]
jne 0x40a4b1
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.false
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402090
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
call fcn.00412b40
movd xmm7, eax
mov dword [esp + 0x2c], eax
punpckldq xmm0, xmm7
jmp 0x4097f3