Function at 0x4067c0
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 [0x44c0f8]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je case.0x4067fc.45
mov ebx, dword [edi + 0x118]
test ebx, ebx
jne case.default.0x40ad8e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
cmp esi, 0x5f
ja case.0x4067fc.45
jmp dword [esi*4 + 0x434cdc]
lea esi, [edx - 0x52]
cmp esi, 1
ja 0x408a2e
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x40afa2
add eax, 0x10
cmp dword [esp + 0x28], 4
jne 0x40a2e8
mov dword [edi + 0x114], ecx
nop
mov dword [edi + 0x118], 1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40aeb0
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.0040b1d0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x409b81
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
test ebx, ebx
je case.default.0x40ad8e
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.default.0x40ad8e
mov ecx, dword [edi + 0x114]
mov eax, ecx
test ecx, ecx
je 0x40ae7c
mov dword [esp + 0x28], ebx
lea esi, [esi]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x40690c
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ebx, [edx - 0x19]
cmp ebx, 2
ja 0x406912
cmp esi, edx
je 0x40a446
mov eax, dword [eax]
test eax, eax
jne 0x4068f0
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 0x406897
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b092
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.0040b1d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x120]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x409eab
xor ebx, ebx
cmp dword [eax], 5
je 0x40a96a
mov edx, dword [eax]
cmp edx, 0x24
je 0x40a265
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x110]
cmp esi, edx
je 0x40a4b1
cmp edx, 0x25
je 0x409b96
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 0x406897
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x406a1f
mov edx, 0x11
mov eax, edi
call fcn.0040b1d0
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je case.default.0x40ad8e
mov eax, dword [edi + 0x100]
cmp eax, 0xfd
ja 0x40a480
mov edx, 0x434a35
mov eax, edi
call fcn.00402d60
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.0040b1d0
cmp dword [edi + 0x128], ebx
jne case.default.0x40ad8e
mov eax, dword [edi + 0x100]
cmp eax, esi
jne case.default.0x40ad8e
sub eax, 2
mov dword [edi + 0x100], eax
jmp case.default.0x40ad8e
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.0040b1d0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x40a2a7
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
jmp case.default.0x40ad8e
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, dword [esi + 0xc]
call fcn.0040b1d0
mov edx, 0x434a38
mov eax, edi
call fcn.00402d60
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
je 0x40a616
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b128
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040b1d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x28
jne 0x40a036
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x40a31b
test ebx, ebx
je 0x406b8c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x40ad5e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a864
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.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a82f
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 0x40a81e
cmp ebx, 8
je 0x40a7d9
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0d8
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.0040b1d0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x40a03d
mov edx, 0x11
mov eax, edi
call fcn.0040b1d0
cmp dword [ebx], 0x56
je 0x40a046
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x406c7f
mov ebx, 0x2e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40aabd
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 [0x44c0f8]
jne 0x40b09c
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0e2
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.0040c850
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
test ecx, ecx
je 0x406cf3
mov edx, 0x11
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a6ad
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.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a678
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ad8e
mov eax, dword [edi + 0x100]
mov ebx, str.global_destructors_keyed_to
mov esi, 0x434c89
jmp 0x406d87
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 0x4097de
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406d68
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, 0x434c89
je 0x4097de
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406d6a
mov eax, dword [edi + 0x100]
mov ebx, str.template_parameter_object_for
mov esi, 0x434a72
jmp 0x406e2b
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, 0x434a72
je 0x40980b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406e08
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 0x40980b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406e0a
mov eax, dword [edi + 0x100]
mov ebx, str.guard_variable_for
mov esi, 0x434b56
jmp 0x406ec7
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 0x40974b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406ea8
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, 0x434b56
je 0x40974b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406eaa
mov eax, dword [edi + 0x100]
mov ebx, str.non_virtual_thunk_to
mov esi, 0x434b05
jmp 0x406f67
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 0x4098bf
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406f48
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, 0x434b05
je 0x4098bf
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406f4a
mov eax, dword [edi + 0x100]
mov ebx, str.covariant_return_thunk_to
mov esi, 0x434b32
jmp 0x407007
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 0x409916
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 + 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, 0x434b32
je 0x409916
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406fea
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_name_for
jmp 0x4070a3
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, 0x434ade
je 0x409970
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407080
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, 0x434ade
je 0x409970
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407082
mov eax, dword [edi + 0x100]
mov ebx, str.java_Class_for
mov esi, 0x434b42
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 0x4099ca
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 + 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, 0x434b42
je 0x4099ca
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407122
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_fn_for
mov esi, 0x434aef
jmp 0x4071df
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 0x409a24
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4071c0
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 0x409a24
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4071c2
mov eax, dword [edi + 0x100]
mov ebx, str.virtual_thunk_to
mov esi, 0x434b17
jmp 0x407277
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 0x409b12
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407258
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, 0x434b17
je 0x409b12
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40725a
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_for
mov esi, 0x434acb
jmp 0x40731b
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, 0x434acb
je 0x409b3f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4072f8
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 0x409b3f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4072fa
mov eax, dword [edi + 0x100]
mov ebx, str.construction_vtable_for
mov esi, 0x434ab8
jmp 0x4073bb
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, 0x434ab8
je 0x4092d6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407398
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 0x4092d6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40739a
mov eax, dword [edi + 0x100]
mov ebx, str.non_transaction_clone_for
mov esi, 0x434be7
jmp 0x407457
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 0x4094b2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407438
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 0x4094b2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40743a
mov eax, dword [edi + 0x100]
mov ebx, str.vtable_for
mov esi, 0x434a96
jmp 0x4074ef
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 0x4093d8
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4074d0
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 0x4093d8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4074d2
mov eax, dword [edi + 0x100]
mov ebx, str.unnamed_type
mov esi, 0x434ca3
jmp 0x40758b
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, 0x434ca3
je 0x409539
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407568
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 0x409539
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40756a
mov eax, dword [edi + 0x100]
mov ebx, str.VTT_for
mov esi, 0x434a9f
jmp 0x407627
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 0x40937e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407608
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 0x40937e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40760a
mov eax, dword [edi + 0x100]
mov ebx, str.transaction_clone_for
mov esi, 0x434bcc
jmp 0x4076c3
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, 0x434bcc
je 0x4094df
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 0x4094df
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4076a2
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a643
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 [0x44c0f8]
jne 0x40b12d
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.0040b1d0
mov eax, dword [edi + 0x100]
mov ebx, str.lambda
mov esi, 0x434c91
jmp 0x4077af
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 0x409bd0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407790
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 0x40a717
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407792
mov eax, dword [edi + 0x100]
mov ebx, str.initializer_for_module
mov esi, 0x434a8a
jmp 0x407847
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 0x40999d
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407828
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 0x40999d
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40782a
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409dd6
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str.__clone
mov esi, 0x434cac
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x40791f
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 0x4091b0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407900
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 0x4091b0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407902
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._abi:
mov esi, 0x434a34
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x4079cf
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 0x4091b0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4079b0
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 0x4091b0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4079b2
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x120]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x409e44
mov edx, ecx
mov eax, edi
call fcn.00402e10
xor edx, edx
test eax, eax
je 0x409e44
lea esi, [esi]
cmp dword [eax], 0x30
jne 0x40a473
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40a473
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
jne 0x407a60
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.0040b1d0
mov eax, dword [esp + 0x28]
cmp ebx, eax
je case.default.0x40ad8e
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x100]
mov esi, 0x434a35
jmp 0x407af4
mov ecx, eax
lea eax, [ecx + 1]
add esi, 1
mov edx, 0x434a37
mov dword [edi + 0x100], eax
mov byte [edi + ecx], bl
mov byte [edi + 0x104], bl
cmp edx, esi
je 0x4091ed
movzx ebx, byte [esi]
cmp eax, 0xff
jne 0x407ad0
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, 0x434a37
je 0x4091ed
movzx ebx, byte [esi]
mov ecx, 1
jmp 0x407ad2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b11e
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.0040b1d0
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x409eb4
mov eax, dword [edi + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x40a409
test eax, eax
je case.0x4067fc.45
mov edx, ecx
jmp 0x407bc8
test edx, edx
je 0x40a409
mov eax, dword [eax + 0x10]
sub edx, 1
test eax, eax
jne 0x407bc0
jmp case.0x4067fc.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.0040b1d0
cmp byte [edi + 0x104], 0x3c
je 0x40a5d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a59b
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.0040b1d0
cmp byte [edi + 0x104], 0x3e
je 0x40a58a
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a555
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.0x40ad8e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._friend_
mov esi, 0x434cb5
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x407cdb
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, 0x434cb5
je case.default.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407cb8
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.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407cba
mov eax, dword [edi + 0x100]
mov ebx, str.template
mov esi, 0x434cc7
jmp 0x407d77
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 0x409405
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407d58
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 0x409405
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407d5a
mov eax, dword [edi + 0x100]
mov ebx, str.typename
mov esi, 0x434cbe
jmp 0x407e0f
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.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407df0
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, 0x434cbe
je case.default.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407df2
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a76f
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 0x407ede
jmp 0x4098ec
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040b1d0
mov esi, dword [esi + 0x10]
add dword [esp + 0x2c], 1
test esi, esi
je 0x4098ec
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x407ec0
mov eax, dword [edi + 0x100]
mov ebx, 0x434a35
jmp 0x407f17
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, 0x434a37
je 0x407ec0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407ef8
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, 0x434a37
je 0x407ec0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407efa
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_init_function_for
mov esi, 0x434b6d
jmp 0x407fb7
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 0x40950c
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407f98
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, 0x434b6d
je 0x40950c
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407f9a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3c
jne case.0x4067fc.45
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne case.0x4067fc.45
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040d190
test eax, eax
jne case.default.0x40ad8e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d5a0
test eax, eax
jne case.default.0x40ad8e
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], 0x434c04
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 0x40af30
mov edx, 0x11
mov eax, edi
call fcn.0040cf90
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040c850
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040cf90
mov eax, edi
mov edx, 0x434c07
call fcn.00402d60
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b083
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040cf90
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
cmp dword [eax], 0x3a
jne case.0x4067fc.45
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 1], 0x63
je 0x40aa35
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040d190
test eax, eax
jne case.default.0x40ad8e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d5a0
test eax, eax
jne case.default.0x40ad8e
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
je 0x40aeb5
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0x434bfe
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 0x40819d
cmp dword [ecx], 3
je 0x40af0a
mov edx, 0x11
mov eax, edi
call fcn.0040cf90
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
mov dword [esp + 4], 0x434c01
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40ae49
mov dword [esp + 4], 0x434bfe
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40b025
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040cf90
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x33
jne case.default.0x40ad8e
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x40ad8e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b10a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c90
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, 0x33
je 0x40a0e4
cmp eax, 0x35
je 0x40a2ef
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040c850
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b146
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040cf90
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40ad8e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x4082df
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.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4082c0
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.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4082c2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._requires
mov esi, 0x434cd9
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x40838f
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 0x409943
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408370
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 0x409943
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408372
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, 0x434c3f
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x40843b
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, 0x434c42
je case.default.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408418
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, 0x434c42
je case.default.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40841a
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x434bfa
jmp 0x4084df
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 0x4099f7
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4084c0
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 0x4099f7
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4084c2
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x434bfa
jmp 0x408577
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 0x409838
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408558
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 0x409838
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40855a
mov eax, dword [esp + 0x2c]
mov ebx, 0x434be8
mov esi, 0x434bf0
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 0x40861f
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 0x409a51
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408600
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 0x409a51
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408602
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x409f50
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0f6
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x434c43
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
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.0x40ad8e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x4086f7
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.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4086d8
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.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4086da
mov eax, dword [edi + 0x100]
mov ebx, str.hidden_alias_for
mov esi, 0x434bb5
jmp 0x40878f
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 0x409892
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408770
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, 0x434bb5
je 0x409892
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408772
mov eax, dword [edi + 0x100]
mov ebx, str.java_resource
mov esi, 0x434c33
jmp 0x40882f
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 0x4097a5
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408810
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 0x4097a5
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408812
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0ec
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.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a5e1
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.0040b1d0
mov esi, dword [esi + 0x10]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x4091c9
mov ebx, 0x434a35
mov esi, 0x434a37
jmp 0x408953
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 0x408900
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408938
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 0x408900
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40893a
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.0x4067fc.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 0x40680f
ja 0x406803
lea esi, [edx - 0x1c]
cmp esi, 5
jbe 0x40680f
mov dword [edi + 0x114], eax
mov esi, dword [esp + 0x20]
cmp edx, 2
je 0x40a8a0
cmp edx, 4
je 0x40a928
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
cmp dword [ebx], 4
jne 0x408a6c
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 0x409e0b
sub ebx, 0x10
cmp ebx, esi
jne 0x408a75
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], eax
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40ad8e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408ad7
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.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408ab8
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.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408aba
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a6e2
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 [0x44c0f8]
jne 0x40b100
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.0040b1d0
mov eax, dword [edi + 0x100]
mov ebx, str.global_constructors_keyed_to
mov esi, 0x434c6c
jmp 0x408bdb
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, 0x434c6c
je 0x409645
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408bb8
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 0x409645
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408bba
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je 0x4091f6
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408c7f
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 0x4091f6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408c60
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 0x4091f6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408c62
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a4eb
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.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a050
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov byte [edi + 0x104], 0x29
jmp case.default.0x40ad8e
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 0x408de3
jmp 0x40aedf
mov edx, dword [eax + 8]
test edx, edx
jne 0x408ddd
cmp ebx, 3
ja case.0x4067fc.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 0x408df0
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
jbe 0x408da8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne case.default.0x40ad8e
lea esi, [esp + 0x4c]
cmp ebx, 1
jbe 0x408e44
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.0040b280
cmp ebx, 1
jne 0x408e28
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040c550
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x408ecd
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.0040b1d0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x114], eax
test ecx, ecx
jne case.default.0x40ad8e
mov edx, 0x20
mov eax, edi
call fcn.00402c90
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040bd40
jmp case.default.0x40ad8e
mov eax, dword [edi + 0x100]
mov ebx, str.decltype__
jmp 0x408f23
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, 0x434c3e
je 0x4097d2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408f00
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, 0x434c3e
je 0x4097d2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408f02
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xa8]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4346dc
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00413870
test eax, eax
js 0x408fc7
add eax, 1
cmp eax, 0x19
ja 0x40a0df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je case.default.0x40ad8e
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x409007
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.0x40ad8e
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x408fe8
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.0x40ad8e
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x408fea
mov eax, dword [edi + 0x100]
mov ebx, str.reference_temporary_
mov esi, 0x434b9d
jmp 0x40909f
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 0x409672
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409080
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, 0x434b9d
je 0x409672
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409082
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_wrapper_function_for
mov esi, 0x434b87
jmp 0x40913f
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 0x409778
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409120
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, 0x434b87
je 0x409778
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409122
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409e76
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5d
mov byte [edi + 0x104], 0x5d
jmp case.default.0x40ad8e
mov ebx, dword [esp + 0x2c]
jmp 0x407a90
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x8f]
movsx eax, word [eax + 0x10]
mov dword [esp + 8], 0x4346dc
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00413870
test eax, eax
js 0x409231
add eax, 1
cmp eax, 0x19
ja 0x40a0df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x409b6c
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x40926f
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 0x409b6c
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409250
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 0x409b6c
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409252
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._in_
mov esi, 0x434abd
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x40931f
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 0x4093ab
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409300
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 0x4093ab
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409302
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b132
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b13c
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b123
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.0040b1d0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._class
mov esi, 0x434cce
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x40944f
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.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409430
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.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409432
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b137
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b10f
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b141
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.0040b1d0
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xf3]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4346dc
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00413870
test eax, eax
js 0x409576
add eax, 1
cmp eax, 0x19
ja 0x40a0df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x409620
lea esi, [ebx + eax]
jmp 0x4095b3
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 0x409620
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409598
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 0x40a23f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40959a
cmp edx, 0xff
je 0x40a085
lea eax, [edx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + edx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0c4
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.0040b1d0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._for
mov esi, 0x434ba3
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
jmp 0x4096bb
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 0x40971e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4096a0
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, 0x434ba3
je 0x40971e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4096a2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b177
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b1a4
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0f1
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b105
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.0040b1d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
jmp 0x408d21
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0d3
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0a1
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.0040b1d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x148]
test eax, eax
je 0x409869
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.0040b1d0
mov ecx, dword [edi + 0x148]
test ecx, ecx
je case.default.0x40ad8e
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b186
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b08d
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.0040b1d0
mov eax, dword [edi + 0x100]
lea edx, [eax + 1]
cmp eax, 0xff
je 0x40a520
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0b0
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b190
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b097
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b17c
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0a6
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b18b
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0ab
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.0040b1d0
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx]
sub eax, 0x61
cmp al, 0x19
jbe 0x40a249
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp byte [ebx + esi - 1], 0x20
cmove esi, eax
test esi, esi
je case.default.0x40ad8e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x409aaf
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.0x40ad8e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409a90
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.0x40ad8e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409a92
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b195
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.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b14b
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.0040b1d0
mov eax, dword [esp + 0x2c]
movzx ebx, byte [eax + 0x12]
test bl, bl
je case.default.0x40ad8e
jmp 0x4078b1
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b280
jmp 0x4068b3
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 0x406897
jmp 0x40693e
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 0x409c19
cmp dword [esi], 0x59
je 0x40ab27
mov dword [edi + 0x120], edx
cmp eax, 0xff
je 0x40a7a4
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, esi
mov edx, 0x11
mov ebx, 0x434c92
mov byte [edi + eax], 0x28
mov eax, edi
mov esi, 0x434c94
mov byte [edi + 0x104], 0x28
call fcn.0040b1d0
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 0x409c93
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 0x409cf6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409c78
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, 0x434c94
je 0x409cf6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409c7a
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xda]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 0x4346dc
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00413870
test eax, eax
js 0x409d33
add eax, 1
cmp eax, 0x19
ja 0x40a0df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x409620
lea esi, [ebx + eax]
jmp 0x409d6f
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 0x409620
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409d50
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 0x40a23f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409d52
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 0x4078c5
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40aaf2
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.0040b280
jmp 0x408a80
mov eax, edi
mov edx, 0x11
call fcn.0040cf90
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0b5
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x434c3f
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
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 0x4091d7
mov eax, dword [esp + 0x28]
jmp 0x4069a4
test eax, eax
je 0x40a388
mov eax, dword [edi + 0x100]
mov ebx, str.auto:
mov esi, 0x434a52
jmp 0x409eed
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 0x40a3de
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409ece
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 0x40a3de
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409ed0
mov edx, str.parm
mov eax, edi
call fcn.00402d60
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0xc1]
mov dword [esp + 8], 0x4346dc
mov dword [esp + 4], 0x19
mov dword [esp], ebx
call fcn.00413870
test eax, eax
js 0x409f8f
add eax, 1
cmp eax, 0x19
ja 0x40a0df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [edi + 0x100]
mov esi, eax
test eax, eax
je 0x40a0ba
add esi, ebx
jmp 0x409fcf
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 0x40a0ba
movzx eax, byte [ebx]
cmp ecx, 0xff
jne 0x409fb0
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 0x40acca
movzx eax, byte [ebx]
mov edx, 1
jmp 0x409fb2
xor ebx, ebx
jmp 0x406b8c
cmp esi, 0x56
jne 0x406c7f
mov ebx, 0x3a
jmp 0x406c5c
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 0x408d41
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 0x40962f
cmp ecx, 0xff
je 0x40ac13
lea eax, [ecx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + ecx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ad8e
call fcn.004137b0
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 0x40a104
movzx edx, byte [ecx + 1]
sub edx, 0x64
jne 0x40a104
movzx edx, byte [ecx + 2]
mov ecx, dword [ebx]
test edx, edx
jne 0x40a113
cmp ecx, 3
je 0x40ad1c
cmp ecx, 0x3a
je 0x40ae12
cmp eax, 0x73
jne 0x40a190
mov edx, dword [esp + 0x2c]
cmp byte [edx + 1], 0x5a
jne 0x40ac43
movzx ecx, byte [edx + 2]
test ecx, ecx
jne 0x40ac43
mov edx, ebx
mov eax, edi
call fcn.00402e10
test eax, eax
jne 0x40a161
jmp 0x40a166
mov edx, dword [eax + 0xc]
test edx, edx
je 0x40a166
mov eax, dword [eax + 0x10]
add ecx, 1
test eax, eax
je 0x40a166
cmp dword [eax], 0x30
je 0x40a150
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0c9
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402f70
mov ecx, esi
mov eax, edi
mov edx, 0x11
call fcn.0040c850
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp eax, 0x67
jne 0x40a1de
cmp byte [esi + 1], 0x73
jne 0x40a1de
cmp byte [esi + 2], 0
jne 0x40a1de
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0ce
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040b1d0
cmp eax, 0x73
jne 0x40a2bc
mov esi, dword [esp + 0x2c]
cmp byte [esi + 1], 0x74
jne 0x40a2bc
cmp byte [esi + 2], 0
jne 0x40a2bc
mov edx, 0x28
mov eax, edi
call fcn.00402c90
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0dd
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c90
mov edx, 1
jmp 0x40962c
mov edx, 0x20
mov eax, edi
mov dword [esp + 0x2c], ecx
call fcn.00402c90
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 4]
jmp 0x409a66
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 0x406897
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b280
jmp 0x406aeb
cmp eax, 0x6e
jne 0x40827c
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x78
jne 0x40827c
cmp byte [eax + 2], 0
je 0x40a1ff
jmp 0x40827c
mov edx, ecx
jmp 0x4089f7
mov eax, edi
mov edx, 0x28
call fcn.00402c90
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040b1d0
mov edx, 0x29
mov eax, edi
call fcn.00402c90
jmp 0x40827c
cmp ebx, 7
jne 0x406b8c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
jne 0x406b8c
cmp dword [eax + 0x10], 1
jne 0x406b8c
cmp esi, 0x3e
jne 0x406b8c
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
cmp al, 0x30
je 0x40b155
cmp al, 0x31
jne 0x406b8c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b150
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.true
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
mov edx, dword [esp + 0x2c]
mov eax, edi
call fcn.00402d00
test eax, eax
je case.0x4067fc.45
cmp dword [eax], 0x30
jne 0x40a3b7
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40a3b7
call fcn.00402b40
test eax, eax
je case.0x4067fc.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.0040b1d0
mov dword [edi + 0x110], ebx
jmp case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b119
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.00402f70
test eax, eax
je case.0x4067fc.45
mov edx, dword [eax]
cmp edx, 0x5d
jne 0x40a425
mov eax, dword [eax + 0xc]
test eax, eax
je case.0x4067fc.45
mov edx, dword [eax]
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b1a9
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403070
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b088
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.0040b1d0
test edx, edx
jne 0x407a7e
jmp case.default.0x40ad8e
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 0x406a3f
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 0x406897
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 0x408d09
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 0x409900
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 0x407c6c
mov edx, 0x20
mov eax, edi
call fcn.00402c90
jmp 0x407c58
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 0x407c27
mov edx, 0x20
mov eax, edi
call fcn.00402c90
jmp 0x407c13
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 0x4088e6
mov edx, str.default_arg
mov eax, edi
call fcn.00402d60
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402f70
mov edx, 0x434a49
mov eax, edi
call fcn.00402d60
mov ebx, dword [ebx + 0xc]
jmp 0x406b2b
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 0x40773d
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 0x406d3a
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 0x406d07
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 0x408b61
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 0x40a75b
cmp dword [esi], 0x59
je 0x40ab27
mov dword [edi + 0x120], 1
mov eax, 1
jmp 0x409c2a
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 0x407e8d
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 0x409c2d
mov edx, 0x5b
mov eax, edi
call fcn.00402c90
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b114
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x5d
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c90
mov edx, 0x2d
mov eax, edi
call fcn.00402c90
jmp 0x406bef
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 0x406bd1
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 0x406ba0
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
je 0x40ad0c
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [esi + eax]
mov eax, dword [ebx]
cmp eax, 0x4f
je 0x40a8d6
ja 0x40a8ce
lea edx, [eax - 0x1c]
cmp edx, 5
jbe 0x40a8d6
mov edx, eax
jmp 0x408a41
lea edx, [eax - 0x52]
cmp edx, 1
ja 0x40a8c7
cmp dword [esp + 0x28], 4
je case.0x4067fc.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 0x40a8b6
jmp case.0x4067fc.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 0x408a4a
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 0x408a4a
mov edx, dword [edi + 0x134]
test edx, edx
jle 0x40afad
mov ebx, dword [edi + 0x130]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x40a99e
add eax, 1
add ebx, 8
cmp edx, eax
je 0x40afad
cmp ecx, dword [ebx]
jne 0x40a990
mov ecx, dword [edi + 0x12c]
mov eax, ecx
test ecx, ecx
je 0x40acdc
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
jmp 0x40a9db
cmp ecx, eax
je 0x40a9d0
cmp edx, esi
je 0x40a9e1
mov eax, dword [eax + 4]
test eax, eax
je 0x40acd4
mov edx, dword [eax]
cmp edx, ebx
jne 0x40a9c8
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, edi
xor ebx, ebx
call fcn.00402d00
test eax, eax
je case.0x4067fc.45
cmp dword [eax], 0x30
jne 0x4069a4
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40b038
call fcn.00402b40
test eax, eax
jne 0x4069a4
test ebx, ebx
je case.0x4067fc.45
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.0x4067fc.45
movzx eax, byte [eax]
lea edx, [eax - 0x72]
cmp dl, 1
jbe 0x40aa4b
sub eax, 0x63
cmp al, 1
ja 0x408132
mov edx, 0x11
mov eax, edi
call fcn.0040c850
mov edx, 0x3c
mov eax, edi
call fcn.00402c90
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b1d0
mov edx, 0x434bfb
mov eax, edi
call fcn.00402d60
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0ba
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c90
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 0x406c70
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 0x409e1f
mov dword [esp + 0x3c], esi
mov edx, 0x3c
mov eax, edi
call fcn.00402c90
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x40ab9a
jmp 0x40abf0
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040b1d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40abbb
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 0x40ab83
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edi + 0x120]
lea ecx, [eax - 1]
mov eax, edi
call fcn.00403070
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40abf0
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x40ab48
mov edx, 0x434a35
mov eax, edi
call fcn.00402d60
jmp 0x40ab48
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 0x40ab66
mov edx, 0x3e
mov eax, edi
call fcn.00402c90
mov eax, dword [edi + 0x120]
mov esi, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, dword [edi + 0x100]
jmp 0x409c19
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 0x40a0c6
cmp eax, 0x73
jne 0x40a190
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x50
jne 0x40a190
xor ecx, ecx
cmp byte [eax + 2], 0
je 0x40ac7e
jmp 0x40a190
add ecx, 1
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40ad3b
cmp dword [ebx], 0x30
jne 0x40ad3b
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40ad3b
cmp dword [eax], 0x4d
jne 0x40ac70
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00402e10
xor edx, edx
test eax, eax
jne 0x40acc1
jmp 0x40acc6
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40acc6
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
je 0x40acc6
cmp dword [eax], 0x30
je 0x40acb0
add ecx, edx
jmp 0x40ac73
mov ecx, 1
jmp 0x40a0c6
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.00402d00
test eax, eax
je 0x40aa26
mov ebx, 1
jmp 0x40a9fa
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x40a8ac
jmp case.0x4067fc.45
mov edx, dword [ebx + 0xc]
cmp dword [edx], 1
jne 0x40a11c
mov ecx, dword [ebx + 0x10]
cmp dword [ecx], 0x2a
jne 0x40a11c
mov ebx, edx
jmp 0x40a11c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b1b8
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402f70
cmp esi, 0x3f
je 0x40b05e
mov ecx, eax
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040b1d0
cmp ebx, 4
ja case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jmp dword [ebx*4 + 0x434e5c]
jne 0x40b19a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x434c13
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
jne 0x40b19f
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x434c10
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
jne 0x40b1ae
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c90
jne 0x40b1b3
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x75
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c90
jne 0x40b0e7
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x434c16
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040cf90
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0bf
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c850
mov eax, edi
mov edx, 0x5b
call fcn.00402c90
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
mov edx, 0x5d
mov eax, edi
call fcn.00402c90
jmp 0x4081fb
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 0x406897
call fcn.00413810
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x40816e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x40816e
mov edx, 0x28
mov eax, edi
call fcn.00402c90
jmp 0x40816e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b1d0
xor eax, eax
cmp dword [esp + 0x50], 0
mov dword [edi + 0x114], eax
je 0x408e44
jmp case.default.0x40ad8e
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x40af1c
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040cf90
jmp 0x4081a9
mov edx, str.new
mov eax, edi
mov dword [esp + 0x28], ecx
call fcn.00402d60
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], 0
je 0x40af62
mov edx, 0x11
mov eax, edi
call fcn.0040cf90
mov edx, 0x20
mov eax, edi
call fcn.00402c90
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b1d0
test esi, esi
je case.default.0x40ad8e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b0fb
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040cf90
mov dword [edi + 0x114], eax
jmp case.0x4067fc.45
cmp edx, dword [edi + 0x138]
jge case.0x4067fc.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 0x40b07a
mov edx, dword [edi + 0x144]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x140]
jmp 0x40b01a
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 0x40b076
cmp dword [esp + 0x24], edx
jg 0x40aff8
jmp case.0x4067fc.45
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040c850
jmp 0x4081e5
movd xmm0, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
cmp esi, 0x30
je 0x40b1bd
movd xmm6, dword [esp + 0x2c]
punpckldq xmm0, xmm6
jmp 0x4069e0
mov eax, edi
mov edx, 0x2d
call fcn.00402c90
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
jmp 0x40ad67
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx], eax
jmp 0x40a9e5
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44c0f8]
jne 0x40b181
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.false
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402d60
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
call fcn.00413810
movd xmm7, eax
mov dword [esp + 0x2c], eax
punpckldq xmm0, xmm7
jmp 0x40a4c3