Function at 0x406680
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 [0x44b0f8]
mov dword [esp + 0x10c], eax
xor eax, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je case.0x4066bc.45
mov ebx, dword [edi + 0x118]
test ebx, ebx
jne case.default.0x40ac4e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
cmp esi, 0x5f
ja case.0x4066bc.45
jmp dword [esi*4 + 0x433cfc]
lea esi, [edx - 0x52]
cmp esi, 1
ja 0x4088ee
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x40ae62
add eax, 0x10
cmp dword [esp + 0x28], 4
jne 0x40a1a8
mov dword [edi + 0x114], ecx
nop
mov dword [edi + 0x118], 1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40ad70
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.0040b090
mov esi, dword [esp + 0x40]
test esi, esi
je 0x409a41
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
test ebx, ebx
je case.default.0x40ac4e
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.default.0x40ac4e
mov ecx, dword [edi + 0x114]
mov eax, ecx
test ecx, ecx
je 0x40ad3c
mov dword [esp + 0x28], ebx
lea esi, [esi]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x4067cc
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ebx, [edx - 0x19]
cmp ebx, 2
ja 0x4067d2
cmp esi, edx
je 0x40a306
mov eax, dword [eax]
test eax, eax
jne 0x4067b0
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 0x406757
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af52
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.0040b090
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x120]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x409d6b
xor ebx, ebx
cmp dword [eax], 5
je 0x40a82a
mov edx, dword [eax]
cmp edx, 0x24
je 0x40a125
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x110]
cmp esi, edx
je 0x40a371
cmp edx, 0x25
je 0x409a56
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 0x406757
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4068df
mov edx, 0x11
mov eax, edi
call fcn.0040b090
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je case.default.0x40ac4e
mov eax, dword [edi + 0x100]
cmp eax, 0xfd
ja 0x40a340
mov edx, 0x433a55
mov eax, edi
call fcn.00402c20
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.0040b090
cmp dword [edi + 0x128], ebx
jne case.default.0x40ac4e
mov eax, dword [edi + 0x100]
cmp eax, esi
jne case.default.0x40ac4e
sub eax, 2
mov dword [edi + 0x100], eax
jmp case.default.0x40ac4e
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.0040b090
mov esi, dword [esp + 0x40]
test esi, esi
je 0x40a167
mov eax, dword [esp + 0x38]
mov dword [edi + 0x114], eax
jmp case.default.0x40ac4e
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, dword [esi + 0xc]
call fcn.0040b090
mov edx, 0x433a58
mov eax, edi
call fcn.00402c20
mov ebx, dword [esi + 0x10]
cmp dword [ebx], 0x49
je 0x40a4d6
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afe8
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040b090
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], 0x28
jne 0x409ef6
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x10]
cmp ebx, 6
ja 0x40a1db
test ebx, ebx
je 0x406a4c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
je 0x40ac1e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a724
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.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a6ef
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 0x40a6de
cmp ebx, 8
je 0x40a699
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af98
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.0040b090
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x409efd
mov edx, 0x11
mov eax, edi
call fcn.0040b090
cmp dword [ebx], 0x56
je 0x409f06
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x406b3f
mov ebx, 0x2e
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a97d
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 [0x44b0f8]
jne 0x40af5c
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afa2
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.0040c710
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
test ecx, ecx
je 0x406bb3
mov edx, 0x11
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a56d
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.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a538
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ac4e
mov eax, dword [edi + 0x100]
mov ebx, str.global_destructors_keyed_to
mov esi, 0x433ca9
jmp 0x406c47
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 0x40969e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406c28
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, 0x433ca9
je 0x40969e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406c2a
mov eax, dword [edi + 0x100]
mov ebx, str.template_parameter_object_for
mov esi, 0x433a92
jmp 0x406ceb
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, 0x433a92
je 0x4096cb
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406cc8
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 0x4096cb
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406cca
mov eax, dword [edi + 0x100]
mov ebx, str.guard_variable_for
mov esi, 0x433b76
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 0x40960b
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, 0x433b76
je 0x40960b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406d6a
mov eax, dword [edi + 0x100]
mov ebx, str.non_virtual_thunk_to
mov esi, 0x433b25
jmp 0x406e27
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 0x40977f
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 ebx, 0x433b25
je 0x40977f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406e0a
mov eax, dword [edi + 0x100]
mov ebx, str.covariant_return_thunk_to
mov esi, 0x433b52
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 0x4097d6
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, 0x433b52
je 0x4097d6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406eaa
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_name_for
jmp 0x406f63
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, 0x433afe
je 0x409830
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406f40
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, 0x433afe
je 0x409830
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406f42
mov eax, dword [edi + 0x100]
mov ebx, str.java_Class_for
mov esi, 0x433b62
jmp 0x406fff
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 0x40988a
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x406fe0
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, 0x433b62
je 0x40988a
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x406fe2
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_fn_for
mov esi, 0x433b0f
jmp 0x40709f
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 0x4098e4
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 esi, ebx
je 0x4098e4
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407082
mov eax, dword [edi + 0x100]
mov ebx, str.virtual_thunk_to
mov esi, 0x433b37
jmp 0x407137
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 0x4099d2
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407118
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, 0x433b37
je 0x4099d2
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40711a
mov eax, dword [edi + 0x100]
mov ebx, str.typeinfo_for
mov esi, 0x433aeb
jmp 0x4071db
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, 0x433aeb
je 0x4099ff
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4071b8
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 0x4099ff
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4071ba
mov eax, dword [edi + 0x100]
mov ebx, str.construction_vtable_for
mov esi, 0x433ad8
jmp 0x40727b
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, 0x433ad8
je 0x409196
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 esi, ebx
je 0x409196
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40725a
mov eax, dword [edi + 0x100]
mov ebx, str.non_transaction_clone_for
mov esi, 0x433c07
jmp 0x407317
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 0x409372
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 0x409372
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4072fa
mov eax, dword [edi + 0x100]
mov ebx, str.vtable_for
mov esi, 0x433ab6
jmp 0x4073af
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 0x409298
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407390
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 0x409298
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407392
mov eax, dword [edi + 0x100]
mov ebx, str.unnamed_type
mov esi, 0x433cc3
jmp 0x40744b
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, 0x433cc3
je 0x4093f9
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407428
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 0x4093f9
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40742a
mov eax, dword [edi + 0x100]
mov ebx, str.VTT_for
mov esi, 0x433abf
jmp 0x4074e7
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 0x40923e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4074c8
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 0x40923e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4074ca
mov eax, dword [edi + 0x100]
mov ebx, str.transaction_clone_for
mov esi, 0x433bec
jmp 0x407583
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, 0x433bec
je 0x40939f
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407560
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 0x40939f
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407562
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a503
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 [0x44b0f8]
jne 0x40afed
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.0040b090
mov eax, dword [edi + 0x100]
mov ebx, str.lambda
mov esi, 0x433cb1
jmp 0x40766f
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 0x409a90
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407650
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 0x40a5d7
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407652
mov eax, dword [edi + 0x100]
mov ebx, str.initializer_for_module
mov esi, 0x433aaa
jmp 0x407707
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 0x40985d
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4076e8
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 0x40985d
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4076ea
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409c96
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], bl
mov byte [edi + 0x104], bl
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str.__clone
mov esi, 0x433ccc
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x4077df
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 0x409070
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4077c0
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 0x409070
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4077c2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._abi:
mov esi, 0x433a54
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x40788f
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 0x409070
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407870
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 0x409070
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407872
mov eax, dword [esp + 0x2c]
mov ebx, dword [edi + 0x120]
mov ecx, dword [eax + 0xc]
test ebx, ebx
jne 0x409d04
mov edx, ecx
mov eax, edi
call fcn.00402cd0
xor edx, edx
test eax, eax
je 0x409d04
lea esi, [esi]
cmp dword [eax], 0x30
jne 0x40a333
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40a333
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
jne 0x407920
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.0040b090
mov eax, dword [esp + 0x28]
cmp ebx, eax
je case.default.0x40ac4e
mov dword [esp + 0x2c], ebx
mov eax, dword [edi + 0x100]
mov esi, 0x433a55
jmp 0x4079b4
mov ecx, eax
lea eax, [ecx + 1]
add esi, 1
mov edx, 0x433a57
mov dword [edi + 0x100], eax
mov byte [edi + ecx], bl
mov byte [edi + 0x104], bl
cmp edx, esi
je 0x4090ad
movzx ebx, byte [esi]
cmp eax, 0xff
jne 0x407990
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, 0x433a57
je 0x4090ad
movzx ebx, byte [esi]
mov ecx, 1
jmp 0x407992
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afde
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.0040b090
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x120]
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 1]
cmp eax, edx
jle 0x409d74
mov eax, dword [edi + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
test ecx, ecx
je 0x40a2c9
test eax, eax
je case.0x4066bc.45
mov edx, ecx
jmp 0x407a88
test edx, edx
je 0x40a2c9
mov eax, dword [eax + 0x10]
sub edx, 1
test eax, eax
jne 0x407a80
jmp case.0x4066bc.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.0040b090
cmp byte [edi + 0x104], 0x3c
je 0x40a490
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a45b
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.0040b090
cmp byte [edi + 0x104], 0x3e
je 0x40a44a
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a415
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.0x40ac4e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._friend_
mov esi, 0x433cd5
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x407b9b
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, 0x433cd5
je case.default.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407b78
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.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407b7a
mov eax, dword [edi + 0x100]
mov ebx, str.template
mov esi, 0x433ce7
jmp 0x407c37
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 0x4092c5
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407c18
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 0x4092c5
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407c1a
mov eax, dword [edi + 0x100]
mov ebx, str.typename
mov esi, 0x433cde
jmp 0x407ccf
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.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407cb0
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, 0x433cde
je case.default.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407cb2
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a62f
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 0x407d9e
jmp 0x4097ac
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040b090
mov esi, dword [esi + 0x10]
add dword [esp + 0x2c], 1
test esi, esi
je 0x4097ac
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x407d80
mov eax, dword [edi + 0x100]
mov ebx, 0x433a55
jmp 0x407dd7
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, 0x433a57
je 0x407d80
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407db8
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, 0x433a57
je 0x407d80
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407dba
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_init_function_for
mov esi, 0x433b8d
jmp 0x407e77
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 0x4093cc
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x407e58
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, 0x433b8d
je 0x4093cc
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x407e5a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3c
jne case.0x4066bc.45
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x3d
jne case.0x4066bc.45
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040d050
test eax, eax
jne case.default.0x40ac4e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d460
test eax, eax
jne case.default.0x40ac4e
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], 0x433c24
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 0x40adf0
mov edx, 0x11
mov eax, edi
call fcn.0040ce50
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040c710
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040ce50
mov eax, edi
mov edx, 0x433c27
call fcn.00402c20
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af43
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040ce50
mov esi, dword [esp + 0x2c]
mov eax, dword [esi + 0x10]
cmp dword [eax], 0x3a
jne case.0x4066bc.45
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax]
cmp byte [eax + 1], 0x63
je 0x40a8f5
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
mov ecx, esi
call fcn.0040d050
test eax, eax
jne case.default.0x40ac4e
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040d460
test eax, eax
jne case.default.0x40ac4e
mov eax, dword [esi + 0xc]
cmp dword [eax], 0x33
je 0x40ad75
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0x433c1e
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 0x40805d
cmp dword [ecx], 3
je 0x40adca
mov edx, 0x11
mov eax, edi
call fcn.0040ce50
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov esi, dword [eax]
mov dword [esp + 4], 0x433c21
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40ad09
mov dword [esp + 4], 0x433c1e
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40aee5
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040ce50
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x33
jne case.default.0x40ac4e
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne case.default.0x40ac4e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afca
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402b50
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi]
cmp eax, 0x33
je 0x409fa4
cmp eax, 0x35
je 0x40a1af
mov ecx, esi
mov edx, 0x11
mov eax, edi
call fcn.0040c710
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b006
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040ce50
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40ac4e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40819f
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.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408180
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.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408182
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._requires
mov esi, 0x433cf9
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x40824f
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 0x409803
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408230
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409803
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408232
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, 0x433c5f
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x4082fb
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, 0x433c62
je case.default.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4082d8
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, 0x433c62
je case.default.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4082da
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x433c1a
jmp 0x40839f
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 0x4098b7
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408380
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 0x4098b7
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408382
mov eax, dword [edi + 0x100]
mov ebx, str.operator
mov esi, 0x433c1a
jmp 0x408437
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 0x4096f8
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 + 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 0x4096f8
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40841a
mov eax, dword [esp + 0x2c]
mov ebx, 0x433c08
mov esi, 0x433c10
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 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 0x409911
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 + 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 0x409911
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4084c2
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x409e10
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afb6
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c63
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
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.0x40ac4e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x4085b7
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.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408598
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.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40859a
mov eax, dword [edi + 0x100]
mov ebx, str.hidden_alias_for
mov esi, 0x433bd5
jmp 0x40864f
mov ecx, eax
lea eax, [ecx + 1]
add ebx, 1
mov dword [edi + 0x100], eax
mov byte [edi + ecx], dl
mov byte [edi + 0x104], dl
cmp esi, ebx
je 0x409752
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408630
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 0x28], dl
mov dword [esp + 8], eax
mov dword [esp + 4], 0xff
mov dword [esp], edi
call dword [edi + 0x108]
movzx edx, byte [esp + 0x28]
add dword [edi + 0x128], 1
mov dword [edi + 0x100], 1
mov byte [edi], dl
mov byte [edi + 0x104], dl
cmp ebx, 0x433bd5
je 0x409752
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408632
mov eax, dword [edi + 0x100]
mov ebx, str.java_resource
mov esi, 0x433c53
jmp 0x4086ef
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 0x409665
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4086d0
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 0x409665
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4086d2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afac
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.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a4a1
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.0040b090
mov esi, dword [esi + 0x10]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x409089
mov ebx, 0x433a55
mov esi, 0x433a57
jmp 0x408813
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 0x4087c0
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4087f8
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 0x4087c0
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4087fa
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.0x4066bc.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 0x4066cf
ja 0x4066c3
lea esi, [edx - 0x1c]
cmp esi, 5
jbe 0x4066cf
mov dword [edi + 0x114], eax
mov esi, dword [esp + 0x20]
cmp edx, 2
je 0x40a760
cmp edx, 4
je 0x40a7e8
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
cmp dword [ebx], 4
jne 0x40892c
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 0x409ccb
sub ebx, 0x10
cmp ebx, esi
jne 0x408935
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x114], eax
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0xc]
test esi, esi
je case.default.0x40ac4e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408997
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.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408978
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.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x40897a
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a5a2
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 [0x44b0f8]
jne 0x40afc0
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.0040b090
mov eax, dword [edi + 0x100]
mov ebx, str.global_constructors_keyed_to
mov esi, 0x433c8c
jmp 0x408a9b
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, 0x433c8c
je 0x409505
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408a78
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 0x409505
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408a7a
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
test esi, esi
je 0x4090b6
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x408b3f
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 0x4090b6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408b20
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 0x4090b6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408b22
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a3ab
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.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409f10
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x29
mov byte [edi + 0x104], 0x29
jmp case.default.0x40ac4e
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 0x408ca3
jmp 0x40ad9f
mov edx, dword [eax + 8]
test edx, edx
jne 0x408c9d
cmp ebx, 3
ja case.0x4066bc.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 0x408cb0
mov edx, dword [eax + 4]
mov edx, dword [edx]
sub edx, 0x19
cmp edx, 2
jbe 0x408c68
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
mov eax, dword [esp + 0x28]
mov dword [edi + 0x114], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne case.default.0x40ac4e
lea esi, [esp + 0x4c]
cmp ebx, 1
jbe 0x408d04
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.0040b140
cmp ebx, 1
jne 0x408ce8
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040c410
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x408d8d
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.0040b090
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0x114], eax
test ecx, ecx
jne case.default.0x40ac4e
mov edx, 0x20
mov eax, edi
call fcn.00402b50
mov eax, dword [edi + 0x114]
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov dword [esp], eax
mov eax, edi
call fcn.0040bc00
jmp case.default.0x40ac4e
mov eax, dword [edi + 0x100]
mov ebx, str.decltype__
jmp 0x408de3
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, 0x433c5e
je 0x409692
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408dc0
mov eax, dword [edi + 0x10c]
mov byte [edi + 0xff], 0
add ebx, 1
mov byte [esp + 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, 0x433c5e
je 0x409692
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408dc2
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xa8]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4336fc
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00413730
test eax, eax
js 0x408e87
add eax, 1
cmp eax, 0x19
ja 0x409f9f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je case.default.0x40ac4e
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x408ec7
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.0x40ac4e
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x408ea8
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.0x40ac4e
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x408eaa
mov eax, dword [edi + 0x100]
mov ebx, str.reference_temporary_
mov esi, 0x433bbd
jmp 0x408f5f
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 0x409532
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408f40
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, 0x433bbd
je 0x409532
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408f42
mov eax, dword [edi + 0x100]
mov ebx, str.TLS_wrapper_function_for
mov esi, 0x433ba7
jmp 0x408fff
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 0x409638
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x408fe0
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, 0x433ba7
je 0x409638
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x408fe2
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x409d36
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x5d
mov byte [edi + 0x104], 0x5d
jmp case.default.0x40ac4e
mov ebx, dword [esp + 0x2c]
jmp 0x407950
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x8f]
movsx eax, word [eax + 0x10]
mov dword [esp + 8], 0x4336fc
mov dword [esp + 4], 0x19
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.00413730
test eax, eax
js 0x4090f1
add eax, 1
cmp eax, 0x19
ja 0x409f9f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
test eax, eax
je 0x409a2c
mov edx, dword [edi + 0x100]
lea esi, [ebx + eax]
jmp 0x40912f
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 0x409a2c
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409110
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 0x409a2c
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409112
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._in_
mov esi, 0x433add
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x4091df
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 0x40926b
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4091c0
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 0x40926b
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4091c2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40aff2
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40affc
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afe3
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.0040b090
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._class
mov esi, 0x433cee
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x40930f
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.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x4092f0
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.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x4092f2
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40aff7
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afcf
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b001
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.0040b090
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xf3]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0x4336fc
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00413730
test eax, eax
js 0x409436
add eax, 1
cmp eax, 0x19
ja 0x409f9f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x4094e0
lea esi, [ebx + eax]
jmp 0x409473
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 0x4094e0
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409458
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 0x40a0ff
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x40945a
cmp edx, 0xff
je 0x409f45
lea eax, [edx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + edx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af84
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.0040b090
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ebx, str._for
mov esi, 0x433bc3
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
mov eax, dword [edi + 0x100]
jmp 0x40957b
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 0x4095de
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409560
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, 0x433bc3
je 0x4095de
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409562
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b037
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b064
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afb1
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afc5
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.0040b090
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
jmp 0x408be1
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af93
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af61
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.0040b090
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x148]
test eax, eax
je 0x409729
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.0040b090
mov ecx, dword [edi + 0x148]
test ecx, ecx
je case.default.0x40ac4e
mov eax, dword [esp + 0x38]
mov dword [edi + 0x110], eax
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b046
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af4d
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.0040b090
mov eax, dword [edi + 0x100]
lea edx, [eax + 1]
cmp eax, 0xff
je 0x40a3e0
mov dword [edi + 0x100], edx
mov byte [edi + eax], 0x3e
mov byte [edi + 0x104], 0x3e
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af70
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b050
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af57
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b03c
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af66
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b04b
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af6b
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.0040b090
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 4]
movzx eax, byte [ebx]
sub eax, 0x61
cmp al, 0x19
jbe 0x40a109
mov esi, dword [esp + 0x28]
lea eax, [esi - 1]
cmp byte [ebx + esi - 1], 0x20
cmove esi, eax
test esi, esi
je case.default.0x40ac4e
mov eax, dword [edi + 0x100]
add esi, ebx
jmp 0x40996f
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.0x40ac4e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409950
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.0x40ac4e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409952
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b055
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.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b00b
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.0040b090
mov eax, dword [esp + 0x2c]
movzx ebx, byte [eax + 0x12]
test bl, bl
je case.default.0x40ac4e
jmp 0x407771
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b140
jmp 0x406773
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 0x406757
jmp 0x4067fe
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 0x409ad9
cmp dword [esi], 0x59
je 0x40a9e7
mov dword [edi + 0x120], edx
cmp eax, 0xff
je 0x40a664
lea edx, [eax + 1]
mov dword [edi + 0x100], edx
mov ecx, esi
mov edx, 0x11
mov ebx, 0x433cb2
mov byte [edi + eax], 0x28
mov eax, edi
mov esi, 0x433cb4
mov byte [edi + 0x104], 0x28
call fcn.0040b090
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 0x409b53
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 0x409bb6
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409b38
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, 0x433cb4
je 0x409bb6
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409b3a
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0xda]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], 0x4336fc
mov dword [esp + 4], 0x19
add eax, 1
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00413730
test eax, eax
js 0x409bf3
add eax, 1
cmp eax, 0x19
ja 0x409f9f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edx, dword [edi + 0x100]
test eax, eax
je 0x4094e0
lea esi, [ebx + eax]
jmp 0x409c2f
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 0x4094e0
movzx eax, byte [ebx]
cmp edx, 0xff
jne 0x409c10
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 0x40a0ff
movzx eax, byte [ebx]
mov ecx, 1
jmp 0x409c12
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 0x407785
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40a9b2
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.0040b140
jmp 0x408940
mov eax, edi
mov edx, 0x11
call fcn.0040ce50
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af75
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c5f
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
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 0x409097
mov eax, dword [esp + 0x28]
jmp 0x406864
test eax, eax
je 0x40a248
mov eax, dword [edi + 0x100]
mov ebx, str.auto:
mov esi, 0x433a72
jmp 0x409dad
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 0x40a29e
movzx edx, byte [ebx]
cmp eax, 0xff
jne 0x409d8e
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 0x40a29e
movzx edx, byte [ebx]
mov ecx, 1
jmp 0x409d90
mov edx, str.parm
mov eax, edi
call fcn.00402c20
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0xc1]
mov dword [esp + 8], 0x4336fc
mov dword [esp + 4], 0x19
mov dword [esp], ebx
call fcn.00413730
test eax, eax
js 0x409e4f
add eax, 1
cmp eax, 0x19
ja 0x409f9f
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, dword [edi + 0x100]
mov esi, eax
test eax, eax
je 0x409f7a
add esi, ebx
jmp 0x409e8f
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 0x409f7a
movzx eax, byte [ebx]
cmp ecx, 0xff
jne 0x409e70
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 0x40ab8a
movzx eax, byte [ebx]
mov edx, 1
jmp 0x409e72
xor ebx, ebx
jmp 0x406a4c
cmp esi, 0x56
jne 0x406b3f
mov ebx, 0x3a
jmp 0x406b1c
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 0x408c01
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 0x4094ef
cmp ecx, 0xff
je 0x40aad3
lea eax, [ecx + 1]
mov dword [edi + 0x100], eax
mov byte [edi + ecx], 0x7d
mov byte [edi + 0x104], 0x7d
jmp case.default.0x40ac4e
call fcn.00413670
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 0x409fc4
movzx edx, byte [ecx + 1]
sub edx, 0x64
jne 0x409fc4
movzx edx, byte [ecx + 2]
mov ecx, dword [ebx]
test edx, edx
jne 0x409fd3
cmp ecx, 3
je 0x40abdc
cmp ecx, 0x3a
je 0x40acd2
cmp eax, 0x73
jne 0x40a050
mov edx, dword [esp + 0x2c]
cmp byte [edx + 1], 0x5a
jne 0x40ab03
movzx ecx, byte [edx + 2]
test ecx, ecx
jne 0x40ab03
mov edx, ebx
mov eax, edi
call fcn.00402cd0
test eax, eax
jne 0x40a021
jmp 0x40a026
mov edx, dword [eax + 0xc]
test edx, edx
je 0x40a026
mov eax, dword [eax + 0x10]
add ecx, 1
test eax, eax
je 0x40a026
cmp dword [eax], 0x30
je 0x40a010
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af89
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402e30
mov ecx, esi
mov eax, edi
mov edx, 0x11
call fcn.0040c710
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp eax, 0x67
jne 0x40a09e
cmp byte [esi + 1], 0x73
jne 0x40a09e
cmp byte [esi + 2], 0
jne 0x40a09e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af8e
lea esp, [ebp - 0xc]
mov ecx, ebx
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040b090
cmp eax, 0x73
jne 0x40a17c
mov esi, dword [esp + 0x2c]
cmp byte [esi + 1], 0x74
jne 0x40a17c
cmp byte [esi + 2], 0
jne 0x40a17c
mov edx, 0x28
mov eax, edi
call fcn.00402b50
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af9d
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402b50
mov edx, 1
jmp 0x4094ec
mov edx, 0x20
mov eax, edi
mov dword [esp + 0x2c], ecx
call fcn.00402b50
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + 4]
jmp 0x409926
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 0x406757
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b140
jmp 0x4069ab
cmp eax, 0x6e
jne 0x40813c
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x78
jne 0x40813c
cmp byte [eax + 2], 0
je 0x40a0bf
jmp 0x40813c
mov edx, ecx
jmp 0x4088b7
mov eax, edi
mov edx, 0x28
call fcn.00402b50
mov ecx, dword [esi + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040b090
mov edx, 0x29
mov eax, edi
call fcn.00402b50
jmp 0x40813c
cmp ebx, 7
jne 0x406a4c
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov edx, dword [eax]
test edx, edx
jne 0x406a4c
cmp dword [eax + 0x10], 1
jne 0x406a4c
cmp esi, 0x3e
jne 0x406a4c
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
cmp al, 0x30
je 0x40b015
cmp al, 0x31
jne 0x406a4c
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b010
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.true
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
mov edx, dword [esp + 0x2c]
mov eax, edi
call fcn.00402bc0
test eax, eax
je case.0x4066bc.45
cmp dword [eax], 0x30
jne 0x40a277
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40a277
call fcn.00402a00
test eax, eax
je case.0x4066bc.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.0040b090
mov dword [edi + 0x110], ebx
jmp case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afd9
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.00402e30
test eax, eax
je case.0x4066bc.45
mov edx, dword [eax]
cmp edx, 0x5d
jne 0x40a2e5
mov eax, dword [eax + 0xc]
test eax, eax
je case.0x4066bc.45
mov edx, dword [eax]
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b069
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402f30
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af48
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.0040b090
test edx, edx
jne 0x40793e
jmp case.default.0x40ac4e
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 0x4068ff
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 0x406757
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 0x408bc9
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 0x4097c0
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 0x407b2c
mov edx, 0x20
mov eax, edi
call fcn.00402b50
jmp 0x407b18
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 0x407ae7
mov edx, 0x20
mov eax, edi
call fcn.00402b50
jmp 0x407ad3
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 0x4087a6
mov edx, str.default_arg
mov eax, edi
call fcn.00402c20
mov eax, dword [ebx + 0x10]
lea edx, [eax + 1]
mov eax, edi
call fcn.00402e30
mov edx, 0x433a69
mov eax, edi
call fcn.00402c20
mov ebx, dword [ebx + 0xc]
jmp 0x4069eb
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 0x4075fd
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 0x406bfa
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 0x406bc7
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 0x408a21
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 0x40a61b
cmp dword [esi], 0x59
je 0x40a9e7
mov dword [edi + 0x120], 1
mov eax, 1
jmp 0x409aea
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 0x407d4d
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 0x409aed
mov edx, 0x5b
mov eax, edi
call fcn.00402b50
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afd4
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x5d
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402b50
mov edx, 0x2d
mov eax, edi
call fcn.00402b50
jmp 0x406aaf
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 0x406a91
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 0x406a60
mov ebx, dword [ebx + 0x10]
cmp dword [ebx], 0x49
je 0x40abcc
mov eax, dword [esp + 0x28]
shl eax, 4
lea ecx, [esi + eax]
mov eax, dword [ebx]
cmp eax, 0x4f
je 0x40a796
ja 0x40a78e
lea edx, [eax - 0x1c]
cmp edx, 5
jbe 0x40a796
mov edx, eax
jmp 0x408901
lea edx, [eax - 0x52]
cmp edx, 1
ja 0x40a787
cmp dword [esp + 0x28], 4
je case.0x4066bc.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 0x40a776
jmp case.0x4066bc.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 0x40890a
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 0x40890a
mov edx, dword [edi + 0x134]
test edx, edx
jle 0x40ae6d
mov ebx, dword [edi + 0x130]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x40a85e
add eax, 1
add ebx, 8
cmp edx, eax
je 0x40ae6d
cmp ecx, dword [ebx]
jne 0x40a850
mov ecx, dword [edi + 0x12c]
mov eax, ecx
test ecx, ecx
je 0x40ab9c
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
jmp 0x40a89b
cmp ecx, eax
je 0x40a890
cmp edx, esi
je 0x40a8a1
mov eax, dword [eax + 4]
test eax, eax
je 0x40ab94
mov edx, dword [eax]
cmp edx, ebx
jne 0x40a888
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, edi
xor ebx, ebx
call fcn.00402bc0
test eax, eax
je case.0x4066bc.45
cmp dword [eax], 0x30
jne 0x406864
mov edx, dword [edi + 0x124]
test edx, edx
js 0x40aef8
call fcn.00402a00
test eax, eax
jne 0x406864
test ebx, ebx
je case.0x4066bc.45
mov eax, dword [esp + 0x20]
mov dword [edi + 0x110], eax
jmp case.0x4066bc.45
movzx eax, byte [eax]
lea edx, [eax - 0x72]
cmp dl, 1
jbe 0x40a90b
sub eax, 0x63
cmp al, 1
ja 0x407ff2
mov edx, 0x11
mov eax, edi
call fcn.0040c710
mov edx, 0x3c
mov eax, edi
call fcn.00402b50
mov esi, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, edi
call fcn.0040b090
mov edx, 0x433c1b
mov eax, edi
call fcn.00402c20
mov eax, dword [esi + 0x10]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af7a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x29
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402b50
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 0x406b30
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 0x409cdf
mov dword [esp + 0x3c], esi
mov edx, 0x3c
mov eax, edi
call fcn.00402b50
mov ebx, dword [esi + 0xc]
test ebx, ebx
jne 0x40aa5a
jmp 0x40aab0
mov eax, edi
mov ecx, ebx
mov edx, 0x11
call fcn.0040b090
mov eax, dword [edi + 0x100]
cmp eax, 0xff
je 0x40aa7b
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 0x40aa43
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edi + 0x120]
lea ecx, [eax - 1]
mov eax, edi
call fcn.00402f30
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40aab0
mov eax, dword [edi + 0x120]
lea edx, [eax + 1]
mov dword [edi + 0x120], edx
test eax, eax
je 0x40aa08
mov edx, 0x433a55
mov eax, edi
call fcn.00402c20
jmp 0x40aa08
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 0x40aa26
mov edx, 0x3e
mov eax, edi
call fcn.00402b50
mov eax, dword [edi + 0x120]
mov esi, dword [esi + 0x10]
lea edx, [eax + 1]
mov eax, dword [edi + 0x100]
jmp 0x409ad9
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 0x409f86
cmp eax, 0x73
jne 0x40a050
mov eax, dword [esp + 0x2c]
cmp byte [eax + 1], 0x50
jne 0x40a050
xor ecx, ecx
cmp byte [eax + 2], 0
je 0x40ab3e
jmp 0x40a050
add ecx, 1
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x40abfb
cmp dword [ebx], 0x30
jne 0x40abfb
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40abfb
cmp dword [eax], 0x4d
jne 0x40ab30
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00402cd0
xor edx, edx
test eax, eax
jne 0x40ab81
jmp 0x40ab86
mov esi, dword [eax + 0xc]
test esi, esi
je 0x40ab86
mov eax, dword [eax + 0x10]
add edx, 1
test eax, eax
je 0x40ab86
cmp dword [eax], 0x30
je 0x40ab70
add ecx, edx
jmp 0x40ab33
mov ecx, 1
jmp 0x409f86
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.00402bc0
test eax, eax
je 0x40a8e6
mov ebx, 1
jmp 0x40a8ba
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x40a76c
jmp case.0x4066bc.45
mov edx, dword [ebx + 0xc]
cmp dword [edx], 1
jne 0x409fdc
mov ecx, dword [ebx + 0x10]
cmp dword [ecx], 0x2a
jne 0x409fdc
mov ebx, edx
jmp 0x409fdc
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b078
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, ecx
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402e30
cmp esi, 0x3f
je 0x40af1e
mov ecx, eax
mov edx, 0x11
mov eax, edi
sub ebx, 2
call fcn.0040b090
cmp ebx, 4
ja case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jmp dword [ebx*4 + 0x433e7c]
jne 0x40b05a
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c33
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
jne 0x40b05f
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c30
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
jne 0x40b06e
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x6c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402b50
jne 0x40b073
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x75
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402b50
jne 0x40afa7
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, 0x433c36
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
mov ecx, dword [ebx + 0xc]
mov eax, edi
mov edx, 0x11
call fcn.0040ce50
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40af7f
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040c710
mov eax, edi
mov edx, 0x5b
call fcn.00402b50
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
mov edx, 0x5d
mov eax, edi
call fcn.00402b50
jmp 0x4080bb
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 0x406757
call fcn.004136d0
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 1
jne 0x40802e
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x40802e
mov edx, 0x28
mov eax, edi
call fcn.00402b50
jmp 0x40802e
mov eax, dword [esp + 0x2c]
mov edx, 0x11
mov ecx, dword [eax + 0x10]
mov eax, edi
call fcn.0040b090
xor eax, eax
cmp dword [esp + 0x50], 0
mov dword [edi + 0x114], eax
je 0x408d04
jmp case.default.0x40ac4e
mov eax, dword [ecx + 0x10]
cmp dword [eax], 0x2a
je 0x40addc
mov dword [edi + 0x118], 1
mov ecx, dword [ecx + 0xc]
mov edx, 0x11
mov eax, edi
call fcn.0040ce50
jmp 0x408069
mov edx, str.new
mov eax, edi
mov dword [esp + 0x28], ecx
call fcn.00402c20
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0xc], 0
je 0x40ae22
mov edx, 0x11
mov eax, edi
call fcn.0040ce50
mov edx, 0x20
mov eax, edi
call fcn.00402b50
mov ecx, dword [esp + 0x2c]
mov edx, 0x11
mov eax, edi
call fcn.0040b090
test esi, esi
je case.default.0x40ac4e
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40afbb
lea esp, [ebp - 0xc]
mov ecx, esi
mov eax, edi
mov edx, 0x11
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040ce50
mov dword [edi + 0x114], eax
jmp case.0x4066bc.45
cmp edx, dword [edi + 0x138]
jge case.0x4066bc.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 0x40af3a
mov edx, dword [edi + 0x144]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x140]
jmp 0x40aeda
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 0x40af36
cmp dword [esp + 0x24], edx
jg 0x40aeb8
jmp case.0x4066bc.45
mov ecx, ebx
mov edx, 0x11
mov eax, edi
call fcn.0040c710
jmp 0x4080a5
movd xmm0, dword [edi + 0x114]
mov ecx, dword [edi + 0x110]
cmp esi, 0x30
je 0x40b07d
movd xmm6, dword [esp + 0x2c]
punpckldq xmm0, xmm6
jmp 0x4068a0
mov eax, edi
mov edx, 0x2d
call fcn.00402b50
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
jmp 0x40ac27
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx], eax
jmp 0x40a8a5
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
mov eax, dword [esp + 0x10c]
sub eax, dword [0x44b0f8]
jne 0x40b041
lea esp, [ebp - 0xc]
mov eax, edi
mov edx, str.false
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00402c20
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
call fcn.004136d0
movd xmm7, eax
mov dword [esp + 0x2c], eax
punpckldq xmm0, xmm7
jmp 0x40a383