Function at 0x405dc0
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 [0x42e0e8]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je case.0x405dfc.45
mov ebx, dword [edi + 0x118]
test ebx, ebx
jne case.default.0x40a38e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
cmp esi, 0x5f
ja case.0x405dfc.45
jmp dword [esi*4 + 0x423b5c]
lea esi, [edx - 0x52]
cmp esi, 1
ja 0x40802e
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x40a5a2
add eax, 0x10
cmp dword [esp + 0x28], 4
jne 0x4098e8
mov dword [edi + 0x114], ecx
nop
mov dword [edi + 0x118], 1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a4b0
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.0040a7d0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x409181
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
test ebx, ebx
je case.default.0x40a38e
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.default.0x40a38e
mov ecx, dword [edi + 0x114]
mov eax, ecx
test ecx, ecx
je 0x40a47c
mov dword [esp + 0x28], ebx
lea esi, [esi]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x405f0c
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ebx, [edx - 0x19]
cmp ebx, 2
ja 0x405f12
cmp esi, edx
je 0x409a46
mov eax, dword [eax]
test eax, eax
jne 0x405ef0
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 0x405e97
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a692
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.0040a7d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x120]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x4094ab
xor ebx, ebx
cmp dword [eax], 5
je 0x409f6a
mov edx, dword [eax]
cmp edx, 0x24
je 0x409865
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x110]
cmp esi, edx
je 0x409ab1
cmp edx, 0x25
je 0x409196
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 0x405e97
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x40601f
mov edx, 0x11
mov eax, edi
call fcn.0040a7d0
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je case.default.0x40a38e
mov eax, dword [edi + 0x100]
cmp eax, 0xfd
ja 0x409a80
mov edx, 0x4238b5
mov eax, edi
call fcn.00402360
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.0040a7d0
cmp dword [edi + 0x128], ebx
jne case.default.0x40a38e
mov eax, dword [edi + 0x100]
cmp eax, esi
jne case.default.0x40a38e
sub eax, 2
mov dword [edi + 0x100], eax
jmp case.default.0x40a38e
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.0040a7d0
mov esi, dword [esp + 0x40]
test esi, esi
je 0x4098a7
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
jmp case.default.0x40a38e
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, dword [esi + 0xc]
call fcn.0040a7d0
mov edx, 0x4238b8
mov eax, edi
call fcn.00402360
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
je 0x409c16
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a728
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a7d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x28
jne 0x409636
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x40991b
test ebx, ebx
je 0x40618c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x40a35e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409e64
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.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409e2f
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 0x409e1e
cmp ebx, 8
je 0x409dd9
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6d8
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.0040a7d0
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x40963d
mov edx, 0x11
mov eax, edi
call fcn.0040a7d0
cmp dword [ebx], 0x56
je 0x409646
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40627f
mov ebx, 0x2e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a0bd
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 [0x42e0e8]
jne 0x40a69c
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6e2
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.0040be50
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
test ecx, ecx
je 0x4062f3
mov edx, 0x11
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409cad
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.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409c78
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40a38e
mov eax, dword [edi + 0x100]
mov ebx, str.global_destructors_keyed_to
mov esi, 0x423b09
jmp 0x406387
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 0x408dde
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406368
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, 0x423b09
je 0x408dde
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40636a
mov eax, dword [edi + 0x100]
mov ebx, str.template_parameter_object_for
mov esi, 0x4238f2
jmp 0x40642b
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, 0x4238f2
je 0x408e0b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406408
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 0x408e0b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40640a
mov eax, dword [edi + 0x100]
mov ebx, str.guard_variable_for
mov esi, 0x4239d6
jmp 0x4064c7
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 0x408d4b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4064a8
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, 0x4239d6
je 0x408d4b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4064aa
mov eax, dword [edi + 0x100]
mov ebx, str.non_virtual_thunk_to
mov esi, 0x423985
jmp 0x406567
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 0x408ebf
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406548
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, 0x423985
je 0x408ebf
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40654a
mov eax, dword [edi + 0x100]
mov ebx, str.covariant_return_thunk_to
mov esi, 0x4239b2
jmp 0x406607
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 0x408f16
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4065e8
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, 0x4239b2
je 0x408f16
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4065ea
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_name_for
jmp 0x4066a3
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, 0x42395e
je 0x408f70
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406680
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, 0x42395e
je 0x408f70
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406682
mov eax, dword [edi + 0x100]
mov ebx, str.java_Class_for
mov esi, 0x4239c2
jmp 0x40673f
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 0x408fca
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406720
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, 0x4239c2
je 0x408fca
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406722
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_fn_for
mov esi, 0x42396f
jmp 0x4067df
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 0x409024
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4067c0
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 0x409024
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4067c2
mov eax, dword [edi + 0x100]
mov ebx, str.virtual_thunk_to
mov esi, 0x423997
jmp 0x406877
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 0x409112
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406858
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, 0x423997
je 0x409112
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40685a
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_for
mov esi, 0x42394b
jmp 0x40691b
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, 0x42394b
je 0x40913f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4068f8
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 0x40913f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4068fa
mov eax, dword [edi + 0x100]
mov ebx, str.construction_vtable_for
mov esi, 0x423938
jmp 0x4069bb
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, 0x423938
je 0x4088d6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406998
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 0x4088d6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40699a
mov eax, dword [edi + 0x100]
mov ebx, str.non_transaction_clone_for
mov esi, 0x423a67
jmp 0x406a57
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 0x408ab2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406a38
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 0x408ab2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406a3a
mov eax, dword [edi + 0x100]
mov ebx, str.vtable_for
mov esi, 0x423916
jmp 0x406aef
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 0x4089d8
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406ad0
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 0x4089d8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406ad2
mov eax, dword [edi + 0x100]
mov ebx, str.unnamed_type
mov esi, 0x423b23
jmp 0x406b8b
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, 0x423b23
je 0x408b39
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406b68
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 0x408b39
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406b6a
mov eax, dword [edi + 0x100]
mov ebx, str.VTT_for
mov esi, 0x42391f
jmp 0x406c27
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 0x40897e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406c08
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 0x40897e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406c0a
mov eax, dword [edi + 0x100]
mov ebx, str.transaction_clone_for
mov esi, 0x423a4c
jmp 0x406cc3
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, 0x423a4c
je 0x408adf
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406ca0
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 0x408adf
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406ca2
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409c43
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 [0x42e0e8]
jne 0x40a72d
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.0040a7d0
mov eax, dword [edi + 0x100]
mov ebx, str.lambda
mov esi, 0x423b11
jmp 0x406daf
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 0x4091d0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406d90
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 0x409d17
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406d92
mov eax, dword [edi + 0x100]
mov ebx, str.initializer_for_module
mov esi, 0x42390a
jmp 0x406e47
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 0x408f9d
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406e28
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 0x408f9d
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406e2a
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x4093d6
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
jmp case.default.0x40a38e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str.__clone
mov esi, 0x423b2c
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x406f1f
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 0x4087b0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406f00
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 0x4087b0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406f02
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._abi:
mov esi, 0x4238b4
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x406fcf
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 0x4087b0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406fb0
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 0x4087b0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406fb2
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x120]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x409444
mov edx, ecx
mov eax, edi
call fcn.00402410
xor edx, edx
test eax, eax
je 0x409444
lea esi, [esi]
cmp dword [eax], 0x30
jne 0x409a73
mov esi, dword [eax + 0xc]
test esi, esi
je 0x409a73
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
jne 0x407060
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.0040a7d0
mov eax, dword [esp + 0x28]
cmp ebx, eax
je case.default.0x40a38e
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x100]
mov esi, 0x4238b5
jmp 0x4070f4
mov ecx, eax
lea eax, [ecx + 1]
add esi, 1
mov edx, 0x4238b7
mov dword [edi + 0x100], eax
mov byte [edi + ecx], bl
mov byte [edi + 0x104], bl
cmp edx, esi
je 0x4087ed
movzx ebx, byte [esi]
cmp eax, 0xff
jne 0x4070d0
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, 0x4238b7
je 0x4087ed
movzx ebx, byte [esi]
mov ecx, 1
jmp 0x4070d2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a71e
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.0040a7d0
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x4094b4
mov eax, dword [edi + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x409a09
test eax, eax
je case.0x405dfc.45
mov edx, ecx
jmp 0x4071c8
test edx, edx
je 0x409a09
mov eax, dword [eax + 0x10]
sub edx, 1
test eax, eax
jne 0x4071c0
jmp case.0x405dfc.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.0040a7d0
cmp byte [edi + 0x104], 0x3c
je 0x409bd0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409b9b
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.0040a7d0
cmp byte [edi + 0x104], 0x3e
je 0x409b8a
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409b55
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.0x40a38e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._friend_
mov esi, 0x423b35
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x4072db
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, 0x423b35
je case.default.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4072b8
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.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4072ba
mov eax, dword [edi + 0x100]
mov ebx, str.template
mov esi, 0x423b47
jmp 0x407377
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 0x408a05
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407358
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 0x408a05
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40735a
mov eax, dword [edi + 0x100]
mov ebx, str.typename
mov esi, 0x423b3e
jmp 0x40740f
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.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4073f0
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, 0x423b3e
je case.default.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4073f2
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409d6f
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 0x4074de
jmp 0x408eec
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040a7d0
mov esi, dword [esi + 0x10]
add dword [esp + 0x2c], 1
test esi, esi
je 0x408eec
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4074c0
mov eax, dword [edi + 0x100]
mov ebx, 0x4238b5
jmp 0x407517
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, 0x4238b7
je 0x4074c0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4074f8
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, 0x4238b7
je 0x4074c0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4074fa
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_init_function_for
mov esi, 0x4239ed
jmp 0x4075b7
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 0x408b0c
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407598
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, 0x4239ed
je 0x408b0c
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40759a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3c
jne case.0x405dfc.45
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne case.0x405dfc.45
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040c790
test eax, eax
jne case.default.0x40a38e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040cba0
test eax, eax
jne case.default.0x40a38e
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], 0x423a84
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 0x40a530
mov edx, 0x11
mov eax, edi
call fcn.0040c590
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040be50
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040c590
mov eax, edi
mov edx, 0x423a87
call fcn.00402360
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a683
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c590
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
cmp dword [eax], 0x3a
jne case.0x405dfc.45
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 1], 0x63
je 0x40a035
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040c790
test eax, eax
jne case.default.0x40a38e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040cba0
test eax, eax
jne case.default.0x40a38e
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
je 0x40a4b5
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0x423a7e
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 0x40779d
cmp dword [ecx], 3
je 0x40a50a
mov edx, 0x11
mov eax, edi
call fcn.0040c590
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
mov dword [esp + 4], 0x423a81
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40a449
mov dword [esp + 4], 0x423a7e
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40a625
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040c590
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x33
jne case.default.0x40a38e
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x40a38e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a70a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402290
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, 0x33
je 0x4096e4
cmp eax, 0x35
je 0x4098ef
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040be50
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a746
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c590
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40a38e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x4078df
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.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4078c0
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.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4078c2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._requires
mov esi, 0x423b59
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x40798f
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 0x408f43
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407970
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 0x408f43
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407972
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, 0x423abf
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x407a3b
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, 0x423ac2
je case.default.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407a18
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, 0x423ac2
je case.default.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407a1a
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x423a7a
jmp 0x407adf
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 0x408ff7
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407ac0
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 0x408ff7
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407ac2
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x423a7a
jmp 0x407b77
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 0x408e38
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407b58
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 0x408e38
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407b5a
mov eax, dword [esp + 0x2c]
mov ebx, 0x423a68
mov esi, 0x423a70
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 0x407c1f
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 0x409051
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407c00
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 0x409051
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407c02
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x409550
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6f6
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x423ac3
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
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.0x40a38e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x407cf7
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.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407cd8
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.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407cda
mov eax, dword [edi + 0x100]
mov ebx, str.hidden_alias_for
mov esi, 0x423a35
jmp 0x407d8f
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 0x408e92
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407d70
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, 0x423a35
je 0x408e92
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407d72
mov eax, dword [edi + 0x100]
mov ebx, str.java_resource
mov esi, 0x423ab3
jmp 0x407e2f
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 0x408da5
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407e10
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 0x408da5
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407e12
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6ec
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.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409be1
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.0040a7d0
mov esi, dword [esi + 0x10]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x4087c9
mov ebx, 0x4238b5
mov esi, 0x4238b7
jmp 0x407f53
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 0x407f00
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407f38
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 0x407f00
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407f3a
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.0x405dfc.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 0x405e0f
ja 0x405e03
lea esi, [edx - 0x1c]
cmp esi, 5
jbe 0x405e0f
mov dword [edi + 0x114], eax
mov esi, dword [esp + 0x20]
cmp edx, 2
je 0x409ea0
cmp edx, 4
je 0x409f28
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
cmp dword [ebx], 4
jne 0x40806c
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 0x40940b
sub ebx, 0x10
cmp ebx, esi
jne 0x408075
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], eax
jmp case.default.0x40a38e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40a38e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x4080d7
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.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4080b8
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.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4080ba
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409ce2
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 [0x42e0e8]
jne 0x40a700
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.0040a7d0
mov eax, dword [edi + 0x100]
mov ebx, str.global_constructors_keyed_to
mov esi, 0x423aec
jmp 0x4081db
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, 0x423aec
je 0x408c45
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4081b8
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 0x408c45
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4081ba
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je 0x4087f6
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40827f
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 0x4087f6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408260
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 0x4087f6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408262
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409aeb
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.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409650
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov byte [edi + 0x104], 0x29
jmp case.default.0x40a38e
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 0x4083e3
jmp 0x40a4df
mov edx, dword [eax + 8]
test edx, edx
jne 0x4083dd
cmp ebx, 3
ja case.0x405dfc.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 0x4083f0
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
jbe 0x4083a8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne case.default.0x40a38e
lea esi, [esp + 0x4c]
cmp ebx, 1
jbe 0x408444
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.0040a880
cmp ebx, 1
jne 0x408428
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040bb50
jmp case.default.0x40a38e
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4084cd
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.0040a7d0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x114], eax
test ecx, ecx
jne case.default.0x40a38e
mov edx, 0x20
mov eax, edi
call fcn.00402290
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040b340
jmp case.default.0x40a38e
mov eax, dword [edi + 0x100]
mov ebx, str.decltype__
jmp 0x408523
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, 0x423abe
je 0x408dd2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408500
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, 0x423abe
je 0x408dd2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408502
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xa8]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x42355c
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00412e70
test eax, eax
js 0x4085c7
add eax, 1
cmp eax, 0x19
ja 0x4096df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je case.default.0x40a38e
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x408607
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.0x40a38e
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x4085e8
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.0x40a38e
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x4085ea
mov eax, dword [edi + 0x100]
mov ebx, str.reference_temporary_
mov esi, 0x423a1d
jmp 0x40869f
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 0x408c72
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408680
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, 0x423a1d
je 0x408c72
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408682
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_wrapper_function_for
mov esi, 0x423a07
jmp 0x40873f
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 0x408d78
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408720
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, 0x423a07
je 0x408d78
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408722
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409476
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5d
mov byte [edi + 0x104], 0x5d
jmp case.default.0x40a38e
mov ebx, dword [esp + 0x2c]
jmp 0x407090
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x8f]
movsx eax, word [eax + 0x10]
mov dword [esp + 8], 0x42355c
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00412e70
test eax, eax
js 0x408831
add eax, 1
cmp eax, 0x19
ja 0x4096df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x40916c
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x40886f
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 0x40916c
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x408850
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 0x40916c
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x408852
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._in_
mov esi, 0x42393d
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x40891f
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 0x4089ab
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408900
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 0x4089ab
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408902
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a732
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a73c
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a723
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.0040a7d0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._class
mov esi, 0x423b4e
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x408a4f
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.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408a30
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.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408a32
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a737
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a70f
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a741
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.0040a7d0
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xf3]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x42355c
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00412e70
test eax, eax
js 0x408b76
add eax, 1
cmp eax, 0x19
ja 0x4096df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x408c20
lea esi, [ebx + eax]
jmp 0x408bb3
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 0x408c20
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x408b98
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 0x40983f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x408b9a
cmp edx, 0xff
je 0x409685
lea eax, [edx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + edx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6c4
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.0040a7d0
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._for
mov esi, 0x423a23
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
jmp 0x408cbb
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 0x408d1e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408ca0
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, 0x423a23
je 0x408d1e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408ca2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a777
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a7a4
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6f1
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a705
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.0040a7d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
jmp 0x408321
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6d3
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6a1
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.0040a7d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x148]
test eax, eax
je 0x408e69
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.0040a7d0
mov ecx, dword [edi + 0x148]
test ecx, ecx
je case.default.0x40a38e
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
jmp case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a786
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a68d
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.0040a7d0
mov eax, dword [edi + 0x100]
lea edx, [eax + 1]
cmp eax, 0xff
je 0x409b20
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
jmp case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6b0
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a790
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a697
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a77c
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6a6
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a78b
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6ab
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.0040a7d0
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx]
sub eax, 0x61
cmp al, 0x19
jbe 0x409849
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp byte [ebx + esi - 1], 0x20
cmove esi, eax
test esi, esi
je case.default.0x40a38e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x4090af
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.0x40a38e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409090
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.0x40a38e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409092
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a795
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.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a74b
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.0040a7d0
mov eax, dword [esp + 0x2c]
movzx ebx, byte [eax + 0x12]
test bl, bl
je case.default.0x40a38e
jmp 0x406eb1
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040a880
jmp 0x405eb3
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 0x405e97
jmp 0x405f3e
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 0x409219
cmp dword [esi], 0x59
je 0x40a127
mov dword [edi + 0x120], edx
cmp eax, 0xff
je 0x409da4
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, esi
mov edx, 0x11
mov ebx, 0x423b12
mov byte [edi + eax], 0x28
mov eax, edi
mov esi, 0x423b14
mov byte [edi + 0x104], 0x28
call fcn.0040a7d0
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 0x409293
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 0x4092f6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409278
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, 0x423b14
je 0x4092f6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40927a
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xda]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 0x42355c
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00412e70
test eax, eax
js 0x409333
add eax, 1
cmp eax, 0x19
ja 0x4096df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x408c20
lea esi, [ebx + eax]
jmp 0x40936f
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 0x408c20
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409350
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 0x40983f
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409352
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 0x406ec5
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a0f2
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.0040a880
jmp 0x408080
mov eax, edi
mov edx, 0x11
call fcn.0040c590
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6b5
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x423abf
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
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 0x4087d7
mov eax, dword [esp + 0x28]
jmp 0x405fa4
test eax, eax
je 0x409988
mov eax, dword [edi + 0x100]
mov ebx, str.auto:
mov esi, 0x4238d2
jmp 0x4094ed
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 0x4099de
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4094ce
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 0x4099de
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4094d0
mov edx, str.parm
mov eax, edi
call fcn.00402360
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0xc1]
mov dword [esp + 8], 0x42355c
mov dword [esp + 4], 0x19
mov dword [esp], ebx
call fcn.00412e70
test eax, eax
js 0x40958f
add eax, 1
cmp eax, 0x19
ja 0x4096df
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [edi + 0x100]
mov esi, eax
test eax, eax
je 0x4096ba
add esi, ebx
jmp 0x4095cf
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 0x4096ba
movzx eax, byte [ebx]
cmp ecx, 0xff
jne 0x4095b0
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 0x40a2ca
movzx eax, byte [ebx]
mov edx, 1
jmp 0x4095b2
xor ebx, ebx
jmp 0x40618c
cmp esi, 0x56
jne 0x40627f
mov ebx, 0x3a
jmp 0x40625c
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 0x408341
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 0x408c2f
cmp ecx, 0xff
je 0x40a213
lea eax, [ecx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + ecx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40a38e
call fcn.00412db0
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 0x409704
movzx edx, byte [ecx + 1]
sub edx, 0x64
jne 0x409704
movzx edx, byte [ecx + 2]
mov ecx, dword [ebx]
test edx, edx
jne 0x409713
cmp ecx, 3
je 0x40a31c
cmp ecx, 0x3a
je 0x40a412
cmp eax, 0x73
jne 0x409790
mov edx, dword [esp + 0x2c]
cmp byte [edx + 1], 0x5a
jne 0x40a243
movzx ecx, byte [edx + 2]
test ecx, ecx
jne 0x40a243
mov edx, ebx
mov eax, edi
call fcn.00402410
test eax, eax
jne 0x409761
jmp 0x409766
mov edx, dword [eax + 0xc]
test edx, edx
je 0x409766
mov eax, dword [eax + 0x10]
add ecx, 1
test eax, eax
je 0x409766
cmp dword [eax], 0x30
je 0x409750
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6c9
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402570
mov ecx, esi
mov eax, edi
mov edx, 0x11
call fcn.0040be50
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp eax, 0x67
jne 0x4097de
cmp byte [esi + 1], 0x73
jne 0x4097de
cmp byte [esi + 2], 0
jne 0x4097de
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6ce
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040a7d0
cmp eax, 0x73
jne 0x4098bc
mov esi, dword [esp + 0x2c]
cmp byte [esi + 1], 0x74
jne 0x4098bc
cmp byte [esi + 2], 0
jne 0x4098bc
mov edx, 0x28
mov eax, edi
call fcn.00402290
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6dd
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402290
mov edx, 1
jmp 0x408c2c
mov edx, 0x20
mov eax, edi
mov dword [esp + 0x2c], ecx
call fcn.00402290
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 4]
jmp 0x409066
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 0x405e97
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040a880
jmp 0x4060eb
cmp eax, 0x6e
jne 0x40787c
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x78
jne 0x40787c
cmp byte [eax + 2], 0
je 0x4097ff
jmp 0x40787c
mov edx, ecx
jmp 0x407ff7
mov eax, edi
mov edx, 0x28
call fcn.00402290
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040a7d0
mov edx, 0x29
mov eax, edi
call fcn.00402290
jmp 0x40787c
cmp ebx, 7
jne 0x40618c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
jne 0x40618c
cmp dword [eax + 0x10], 1
jne 0x40618c
cmp esi, 0x3e
jne 0x40618c
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
cmp al, 0x30
je 0x40a755
cmp al, 0x31
jne 0x40618c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a750
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.true
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
mov edx, dword [esp + 0x2c]
mov eax, edi
call fcn.00402300
test eax, eax
je case.0x405dfc.45
cmp dword [eax], 0x30
jne 0x4099b7
mov edx, dword [edi + 0x124]
test edx, edx
js 0x4099b7
call fcn.00402140
test eax, eax
je case.0x405dfc.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.0040a7d0
mov dword [edi + 0x110], ebx
jmp case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a719
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.00402570
test eax, eax
je case.0x405dfc.45
mov edx, dword [eax]
cmp edx, 0x5d
jne 0x409a25
mov eax, dword [eax + 0xc]
test eax, eax
je case.0x405dfc.45
mov edx, dword [eax]
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a7a9
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402670
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a688
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.0040a7d0
test edx, edx
jne 0x40707e
jmp case.default.0x40a38e
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 0x40603f
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 0x405e97
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 0x408309
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 0x408f00
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 0x40726c
mov edx, 0x20
mov eax, edi
call fcn.00402290
jmp 0x407258
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 0x407227
mov edx, 0x20
mov eax, edi
call fcn.00402290
jmp 0x407213
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 0x407ee6
mov edx, str.default_arg
mov eax, edi
call fcn.00402360
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402570
mov edx, 0x4238c9
mov eax, edi
call fcn.00402360
mov ebx, dword [ebx + 0xc]
jmp 0x40612b
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 0x406d3d
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 0x40633a
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 0x406307
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 0x408161
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 0x409d5b
cmp dword [esi], 0x59
je 0x40a127
mov dword [edi + 0x120], 1
mov eax, 1
jmp 0x40922a
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 0x40748d
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 0x40922d
mov edx, 0x5b
mov eax, edi
call fcn.00402290
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a714
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x5d
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402290
mov edx, 0x2d
mov eax, edi
call fcn.00402290
jmp 0x4061ef
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 0x4061d1
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 0x4061a0
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
je 0x40a30c
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [esi + eax]
mov eax, dword [ebx]
cmp eax, 0x4f
je 0x409ed6
ja 0x409ece
lea edx, [eax - 0x1c]
cmp edx, 5
jbe 0x409ed6
mov edx, eax
jmp 0x408041
lea edx, [eax - 0x52]
cmp edx, 1
ja 0x409ec7
cmp dword [esp + 0x28], 4
je case.0x405dfc.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 0x409eb6
jmp case.0x405dfc.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 0x40804a
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 0x40804a
mov edx, dword [edi + 0x134]
test edx, edx
jle 0x40a5ad
mov ebx, dword [edi + 0x130]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x409f9e
add eax, 1
add ebx, 8
cmp edx, eax
je 0x40a5ad
cmp ecx, dword [ebx]
jne 0x409f90
mov ecx, dword [edi + 0x12c]
mov eax, ecx
test ecx, ecx
je 0x40a2dc
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
jmp 0x409fdb
cmp ecx, eax
je 0x409fd0
cmp edx, esi
je 0x409fe1
mov eax, dword [eax + 4]
test eax, eax
je 0x40a2d4
mov edx, dword [eax]
cmp edx, ebx
jne 0x409fc8
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, edi
xor ebx, ebx
call fcn.00402300
test eax, eax
je case.0x405dfc.45
cmp dword [eax], 0x30
jne 0x405fa4
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40a638
call fcn.00402140
test eax, eax
jne 0x405fa4
test ebx, ebx
je case.0x405dfc.45
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.0x405dfc.45
movzx eax, byte [eax]
lea edx, [eax - 0x72]
cmp dl, 1
jbe 0x40a04b
sub eax, 0x63
cmp al, 1
ja 0x407732
mov edx, 0x11
mov eax, edi
call fcn.0040be50
mov edx, 0x3c
mov eax, edi
call fcn.00402290
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040a7d0
mov edx, 0x423a7b
mov eax, edi
call fcn.00402360
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6ba
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402290
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 0x406270
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 0x40941f
mov dword [esp + 0x3c], esi
mov edx, 0x3c
mov eax, edi
call fcn.00402290
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x40a19a
jmp 0x40a1f0
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040a7d0
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a1bb
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 0x40a183
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edi + 0x120]
lea ecx, [eax - 1]
mov eax, edi
call fcn.00402670
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40a1f0
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x40a148
mov edx, 0x4238b5
mov eax, edi
call fcn.00402360
jmp 0x40a148
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 0x40a166
mov edx, 0x3e
mov eax, edi
call fcn.00402290
mov eax, dword [edi + 0x120]
mov esi, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, dword [edi + 0x100]
jmp 0x409219
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 0x4096c6
cmp eax, 0x73
jne 0x409790
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x50
jne 0x409790
xor ecx, ecx
cmp byte [eax + 2], 0
je 0x40a27e
jmp 0x409790
add ecx, 1
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40a33b
cmp dword [ebx], 0x30
jne 0x40a33b
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40a33b
cmp dword [eax], 0x4d
jne 0x40a270
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00402410
xor edx, edx
test eax, eax
jne 0x40a2c1
jmp 0x40a2c6
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40a2c6
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
je 0x40a2c6
cmp dword [eax], 0x30
je 0x40a2b0
add ecx, edx
jmp 0x40a273
mov ecx, 1
jmp 0x4096c6
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.00402300
test eax, eax
je 0x40a026
mov ebx, 1
jmp 0x409ffa
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x409eac
jmp case.0x405dfc.45
mov edx, dword [ebx + 0xc]
cmp dword [edx], 1
jne 0x40971c
mov ecx, dword [ebx + 0x10]
cmp dword [ecx], 0x2a
jne 0x40971c
mov ebx, edx
jmp 0x40971c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a7b8
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402570
cmp esi, 0x3f
je 0x40a65e
mov ecx, eax
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040a7d0
cmp ebx, 4
ja case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jmp dword [ebx*4 + 0x423cdc]
jne 0x40a79a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x423a93
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
jne 0x40a79f
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x423a90
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
jne 0x40a7ae
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402290
jne 0x40a7b3
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x75
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402290
jne 0x40a6e7
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x423a96
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040c590
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6bf
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040be50
mov eax, edi
mov edx, 0x5b
call fcn.00402290
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
mov edx, 0x5d
mov eax, edi
call fcn.00402290
jmp 0x4077fb
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 0x405e97
call fcn.00412e10
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x40776e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x40776e
mov edx, 0x28
mov eax, edi
call fcn.00402290
jmp 0x40776e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040a7d0
xor eax, eax
cmp dword [esp + 0x50], 0
mov dword [edi + 0x114], eax
je 0x408444
jmp case.default.0x40a38e
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x40a51c
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040c590
jmp 0x4077a9
mov edx, str.new
mov eax, edi
mov dword [esp + 0x28], ecx
call fcn.00402360
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], 0
je 0x40a562
mov edx, 0x11
mov eax, edi
call fcn.0040c590
mov edx, 0x20
mov eax, edi
call fcn.00402290
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040a7d0
test esi, esi
je case.default.0x40a38e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a6fb
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c590
mov dword [edi + 0x114], eax
jmp case.0x405dfc.45
cmp edx, dword [edi + 0x138]
jge case.0x405dfc.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 0x40a67a
mov edx, dword [edi + 0x144]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x140]
jmp 0x40a61a
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 0x40a676
cmp dword [esp + 0x24], edx
jg 0x40a5f8
jmp case.0x405dfc.45
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040be50
jmp 0x4077e5
movd xmm0, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
cmp esi, 0x30
je 0x40a7bd
movd xmm6, dword [esp + 0x2c]
punpckldq xmm0, xmm6
jmp 0x405fe0
mov eax, edi
mov edx, 0x2d
call fcn.00402290
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
jmp 0x40a367
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx], eax
jmp 0x409fe5
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
mov eax, dword [esp + 0x10c]
sub eax, dword [0x42e0e8]
jne 0x40a781
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.false
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402360
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
call fcn.00412e10
movd xmm7, eax
mov dword [esp + 0x2c], eax
punpckldq xmm0, xmm7
jmp 0x409ac3