Function at 0x418160
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov dword [esp + 0xd8], ecx
mov ebx, dword [ebp + 8]
lea esi, [esp + 0x38]
xorps xmm0, xmm0
movups xmmword [esp + 0x68], xmm0
movups xmmword [esp + 0xa8], xmm0
movups xmmword [esp + 0x98], xmm0
movups xmmword [esp + 0x88], xmm0
movups xmmword [esp + 0x78], xmm0
movups xmmword [esp + 0x58], xmm0
movups xmmword [esp + 0x48], xmm0
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0xb8], 0
lea ecx, [esp + 0x6c]
mov dword [esp + 0x34], 0x4c61a0
mov dword [esp + 0x6c], 0x4c61b4
push esi
call fcn.0041d650
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0xffffffff
mov dword [esp + 0x34], 0x4c6168
mov dword [esp + 0x6c], 0x4c617c
mov ecx, esi
call fcn.0041dcc0
mov dword [esp + 0x38], 0x4c61c4
xorps xmm0, xmm0
movups xmmword [esp + 0x58], xmm0
mov dword [esp + 0x68], 0x10
mov edi, ebx
movzx ebx, word [ebx]
movzx ecx, bl
movzx eax, byte [ecx*8 + 0x4ca53c]
cmp eax, 0x1a
ja case.default.0x41823e
mov edx, dword [ebp + 0xc]
mov esi, dword [ecx*4 + 0x4ca138]
jmp dword [eax*4 + 0x4c9250]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
jmp 0x418a9f
mov eax, ebx
shr eax, 8
and eax, 0xf
shr ebx, 0xc
mov ecx, esp
push ebx
push eax
jmp 0x4182c0
mov eax, ebx
shr eax, 8
and eax, 0xf
movsx ecx, bx
sar ecx, 0xc
mov edx, esp
push ecx
push eax
push esi
push 0x4cadf4
push edx
jmp 0x4184e9
shr ebx, 8
mov eax, esp
push ebx
push esi
push str._s_v_d
jmp 0x4184b2
shr ebx, 8
movsx eax, bl
jmp 0x4182a6
movsx eax, word [edi + 2]
mov ecx, esp
push eax
push esi
push str._s__d
push ecx
jmp 0x4184b3
shr ebx, 8
movzx eax, word [edi + 2]
mov ecx, esp
push eax
push ebx
push esi
push str._s_v_d__v_d
jmp 0x4182ec
shr ebx, 8
movsx eax, word [edi + 2]
mov ecx, esp
push eax
push ebx
push esi
push str._s_v_d___d
jmp 0x4182ec
shr ebx, 8
movsx eax, word [edi + 2]
mov ecx, esp
push eax
push ebx
push esi
push 0x4cadf4
push ecx
jmp 0x4184e9
movzx eax, word [edi + 2]
shl eax, 0x10
shr ebx, 8
mov edi, esp
cmp cx, 0x15
jne 0x418aac
push eax
push eax
push ebx
push esi
push str._s_v_d__int__d____0x_x
jmp 0x419127
mov eax, ebx
add al, 0xe6
cmp al, 0x53
ja case.0x418325.229
movzx eax, al
jmp dword [eax*4 + 0x4c93e4]
test edx, edx
je case.0x418325.229
mov ebx, edi
movzx edi, word [edi + 2]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 3
push 0x4caebd
jmp 0x418bed
shr ebx, 8
movzx eax, word [edi + 2]
movzx ecx, al
shr eax, 8
mov edx, esp
push eax
push ecx
push ebx
push esi
push str._s_v_d__v_d__v_d
jmp 0x4183c5
shr ebx, 8
movzx eax, word [edi + 2]
movzx ecx, al
shr eax, 8
movsx eax, al
mov edx, esp
push eax
push ecx
push ebx
jmp 0x4183bf
mov eax, ebx
shr eax, 8
and eax, 0xf
shr ebx, 0xc
movsx ecx, word [edi + 2]
mov edx, esp
push ecx
push ebx
push eax
push esi
push str._s_v_d__v_d___d
jmp 0x4183c5
mov eax, ebx
shr eax, 8
and eax, 0xf
shr ebx, 0xc
movsx ecx, word [edi + 2]
mov edx, esp
push ecx
push ebx
push eax
push esi
push 0x4caeee
push edx
jmp 0x418a4b
mov eax, ebx
add al, 0xe0
cmp al, 0x3f
ja case.0x4183da.223
movzx eax, al
jmp dword [eax*4 + 0x4c92e4]
test edx, edx
je case.0x4183da.223
movzx eax, word [edi + 2]
mov dword [esp + 0x1c], eax
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caead
push eax
call fcn.00404100
add esp, 0xc
movzx edx, byte [edi + 1]
and edx, 0xf
mov ecx, eax
push edx
call fcn.004276b0
push 3
push 0x4caf11
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [edi]
shr edx, 0xc
mov ecx, eax
push edx
call fcn.004276b0
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov edi, esp
mov ecx, edi
push 1
mov esi, dword [esp + 0x20]
push esi
push dword [ebp + 0xc]
call fcn.00414a40
push edi
push ebx
call fcn.00410d70
add esp, 8
push 0xa
push str.____field_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push esi
call fcn.00427910
jmp 0x4191ab
movzx eax, word [edi + 2]
movzx ecx, word [edi + 4]
mov edx, esp
push ecx
push eax
push esi
push str._s_v_d__v_d
push edx
jmp 0x4184e9
mov eax, esp
push dword [edi + 2]
push esi
push str._s__d
push eax
call fcn.0041c950
add esp, 0x10
movzx eax, byte [esp]
test al, 1
jne 0x4184fd
jmp 0x418a5f
shr ebx, 8
mov eax, esp
push dword [edi + 2]
push ebx
push esi
push str._s_v_d___d
jmp 0x4184e8
shr ebx, 8
mov eax, esp
push dword [edi + 2]
push ebx
push esi
push 0x4cadf4
push eax
call fcn.0041c950
add esp, 0x14
movzx eax, byte [esp]
test al, 1
je 0x418a5f
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
jmp 0x418a65
cmp cx, 0x1b
jne 0x418ac7
mov edi, dword [edi + 2]
test edx, edx
je 0x418daa
mov eax, dword [edx + 0x24]
cmp edi, dword [eax + 0x38]
jae 0x418e85
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x28]
mov ecx, dword [ecx + edi*4]
cmp byte [eax + ecx], 0
js 0x419268
add eax, ecx
add eax, 1
shr ebx, 8
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.004866e0
add esp, 8
test byte [esp + 0x20], 1
je 0x418f5d
mov eax, dword [esp + 0x28]
jmp 0x418f61
xorps xmm0, xmm0
movaps xmmword [esp], xmm0
mov dword [esp + 0x10], 0
mov ecx, ebx
shr ecx, 0xc
add cl, 0xff
cmp cl, 4
ja case.default.0x41858b
movzx eax, word [edi + 4]
movzx ecx, cl
jmp dword [ecx*4 + 0x4c92d0]
mov ecx, ebx
shr ecx, 8
and ecx, 0xf
mov dword [esp + 0x10], ecx
mov ecx, eax
shr ecx, 0xc
mov dword [esp + 0xc], ecx
mov ecx, eax
shr ecx, 8
and ecx, 0xf
mov dword [esp + 8], ecx
mov ecx, eax
shr ecx, 4
and ecx, 0xf
mov dword [esp + 4], ecx
and eax, 0xf
mov dword [esp], eax
lea eax, [esp + 0x34]
mov dword [esp + 0xc4], eax
mov eax, esp
mov dword [esp + 0xc8], eax
mov eax, ebx
add al, 0x92
cmp al, 5
jae 0x418b68
test edx, edx
je 0x418f02
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push eax
push esi
lea ebx, [esp + 0x3c]
push ebx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caf84
push eax
call fcn.00404100
add esp, 0xc
movzx esi, word [edi + 2]
movzx edx, word [edi]
shr edx, 0xc
lea ecx, [esp + 0xc4]
call fcn.004197c0
push 3
push 0x4caf90
push ebx
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
lea edi, [esp + 0x20]
mov ecx, dword [ebp + 0xc]
push edi
push 1
push esi
call fcn.00414640
push edi
push ebx
call fcn.00410d70
add esp, 8
push 0xb
push str.____method_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push esi
call fcn.00427910
test byte [esp + 0x20], 1
je 0x4191bd
push dword [esp + 0x28]
jmp 0x4191b5
movzx eax, word [edi + 4]
mov ecx, ebx
shr ecx, 8
add ecx, eax
add ecx, 0xffffffff
mov edx, ebx
add dl, 0x8c
cmp dl, 5
jae 0x418ca8
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x418ce8
movzx edi, word [edi + 2]
movzx ecx, cx
mov ebx, esp
push ecx
push eax
push esi
push str._s__v_d_.._v_d_
push ebx
call fcn.0041c950
add esp, 0x14
lea eax, [esp + 0x34]
push ebx
push eax
call fcn.00410d70
add esp, 8
mov ebx, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
lea esi, [esp + 0x20]
mov ecx, dword [ebp + 0xc]
push esi
push 1
push edi
call fcn.00414640
push esi
push ebx
call fcn.00410d70
add esp, 8
push 0xb
push str.____method_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push edi
call fcn.00427910
test byte [esp + 0x20], 1
je 0x418749
push dword [esp + 0x28]
call fcn.0046a990
add esp, 4
test byte [esp], 1
lea esi, [esp + 0x38]
jne 0x418a82
jmp case.default.0x41823e
xorps xmm0, xmm0
movaps xmmword [esp], xmm0
mov dword [esp + 0x10], 0
mov eax, ebx
shr eax, 0xc
add al, 0xff
cmp al, 4
ja case.default.0x418781
movzx ecx, word [edi + 4]
movzx eax, al
jmp dword [eax*4 + 0x4c92bc]
shr ebx, 8
and ebx, 0xf
mov dword [esp + 0x10], ebx
mov eax, ecx
shr eax, 0xc
mov dword [esp + 0xc], eax
mov eax, ecx
shr eax, 8
and eax, 0xf
mov dword [esp + 8], eax
mov eax, ecx
shr eax, 4
and eax, 0xf
mov dword [esp + 4], eax
and ecx, 0xf
mov dword [esp + 0x30], ecx
mov dword [esp], ecx
movzx eax, word [edi + 2]
mov dword [esp + 0x1c], eax
movzx ecx, word [edi + 6]
mov dword [esp + 0xbc], ecx
mov word [esp + 0xc4], cx
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ebx, [esp + 0x34]
push eax
push esi
push ebx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caf84
push eax
call fcn.00404100
add esp, 0xc
movzx eax, word [edi]
cmp eax, 0x1000
jb 0x418877
push 1
push 0x4cafe4
push ebx
call fcn.00404100
add esp, 0xc
mov ecx, eax
push dword [esp + 0x30]
call fcn.00427910
movzx eax, word [edi]
cmp eax, 0x2000
jb 0x418877
mov esi, 1
nop word cs:[eax + eax]
nop
push 2
push 0x4caeb0
push ebx
call fcn.00404100
add esp, 0xc
push 1
push 0x4cafe4
push ebx
call fcn.00404100
add esp, 0xc
mov ecx, eax
push dword [esp + esi*4]
call fcn.00427910
add esi, 1
movzx eax, word [edi]
shr eax, 0xc
cmp esi, eax
jb 0x418840
push 1
push 0x4cafe6
push ebx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caeb0
push ebx
call fcn.00404100
add esp, 0xc
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x418d69
mov esi, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
lea eax, [esp + 0x20]
push eax
push 1
push dword [esp + 0x24]
call fcn.00414640
movzx eax, byte [esp + 0x20]
test al, 1
je 0x418c4a
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
jmp 0x418c50
mov ebx, edi
movzx edi, word [edi + 2]
test edx, edx
je 0x418adb
movzx eax, cx
cmp eax, 0xfb
jne 0x418adb
movzx eax, word [ebx + 6]
mov word [esp + 0x1c], ax
mov word [esp + 0x20], ax
push esi
mov dword [esp + 0xc0], edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 4
push str.__v
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [ebx + 4]
mov ecx, eax
push edx
call fcn.00427450
push 5
push str._.._v
push eax
call fcn.00404100
add esp, 0xc
movzx ecx, word [ebx + 4]
movzx edx, byte [ebx + 1]
add edx, ecx
mov ecx, eax
push edx
call fcn.004276b0
push 3
push 0x4caf90
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
mov esi, esp
mov ecx, dword [ebp + 0xc]
push esi
push 1
push edi
call fcn.00414640
push esi
push ebx
call fcn.00410d70
add esp, 8
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
movzx eax, word [esp + 0x1c]
mov word [esp + 0xc0], ax
sub esp, 4
movzx eax, word [esp + 0xc4]
mov word [esp], ax
mov ecx, dword [ebp + 0xc]
call fcn.004198b0
mov edi, eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push eax
push edi
push ebx
call fcn.00404100
add esp, 0xc
push 0xb
push str.____method_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push dword [esp + 0xbc]
call fcn.00427450
push 8
push str.__proto_
push eax
call fcn.00404100
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00415570
jmp 0x4191a8
shr ebx, 8
mov eax, esp
push dword [edi + 6]
push dword [edi + 2]
push ebx
push esi
push str._s_v_d___lld
push eax
call fcn.0041c950
add esp, 0x18
movzx eax, byte [esp]
test al, 1
jne 0x4184fd
shr eax, 1
lea ecx, [esp + 1]
lea esi, [esp + 0x38]
lea edx, [esp + 0x34]
push eax
push ecx
push edx
call fcn.00404100
add esp, 0xc
test byte [esp], 1
je case.default.0x41823e
push dword [esp + 8]
call fcn.0046a990
add esp, 4
jmp case.default.0x41823e
lea eax, [esp + 0x34]
push 0x17
push str._invalid_opcode_format_
push eax
call fcn.00404100
add esp, 0xc
jmp 0x4191bd
push eax
push 0
push eax
push 0
push ebx
push esi
push str._s_v_d__long__lld____0x_llx
push edi
call fcn.0041c950
add esp, 0x20
jmp 0x41919d
shr ebx, 8
mov eax, esp
push dword [edi + 2]
push ebx
push esi
push str._s_v_d__thing__d
jmp 0x418db7
movzx eax, word [ebx + 6]
mov word [esp], ax
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 4
push str.__v
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [ebx + 4]
mov ecx, eax
push edx
call fcn.00427450
push 5
push str._.._v
push eax
call fcn.00404100
add esp, 0xc
movzx ecx, word [ebx + 4]
movzx edx, byte [ebx + 1]
add edx, ecx
mov ecx, eax
push edx
call fcn.004276b0
push 0xa
push str.__method_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push edi
call fcn.00427450
push 8
push str.__proto_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, esp
jmp 0x418d9b
cmp bl, 0xfc
je 0x418ea3
cmp bl, 0x24
jne 0x418f02
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push eax
push esi
lea esi, [esp + 0x3c]
push esi
call fcn.00404100
add esp, 0xc
push 2
push 0x4caf84
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [edi]
shr edx, 0xc
lea ecx, [esp + 0xc4]
call fcn.004197c0
push 8
push str.__type_
jmp 0x418f43
test edx, edx
je case.0x418325.229
mov ebx, edi
movzx edi, word [edi + 2]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caead
push eax
call fcn.00404100
add esp, 0xc
movzx edx, byte [ebx + 1]
mov ecx, eax
push edx
call fcn.004276b0
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov esi, esp
mov ecx, esi
push 1
push edi
push dword [ebp + 0xc]
call fcn.00414a40
push esi
push ebx
call fcn.00410d70
add esp, 8
push 0xa
push str.____field_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push edi
call fcn.00427910
jmp 0x4191ab
shr eax, 1
lea ecx, [esp + 0x21]
push eax
push ecx
push esi
call fcn.00404100
add esp, 0xc
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov dword [esp + 0x30], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x38]
mov ecx, dword [esp + 0xbc]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + ecx*4]
cmp eax, 0xffffffff
je 0x418d2d
mov esi, dword [edx + 0xc]
mov ecx, dword [edx + 0x28]
mov eax, dword [ecx + eax*4]
cmp byte [esi + eax], 0
js 0x419258
add esi, eax
add esi, 1
jmp 0x418d2f
cmp bl, 0xfd
mov edx, dword [ebp + 0xc]
jne 0x418ce8
test edx, edx
je 0x418ce8
movzx edi, word [edi + 2]
movzx ecx, cx
mov ebx, esp
push ecx
push eax
push esi
push str._s__v_d_.._v_d_
push ebx
call fcn.0041c950
add esp, 0x14
lea eax, [esp + 0x34]
push ebx
push eax
call fcn.00410d70
add esp, 8
push 0xd
push str.___call_site_
jmp 0x418c34
movzx ecx, cx
mov ebx, esp
push ecx
push eax
push esi
push str._s__v_d_.._v_d_
push ebx
call fcn.0041c950
add esp, 0x14
lea eax, [esp + 0x34]
push ebx
push eax
call fcn.00410d70
add esp, 8
push 6
push str.thing_
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [edi + 2]
mov ecx, eax
push edx
call fcn.00427450
jmp 0x4191ab
xor esi, esi
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push eax
push esi
push dword [esp + 0x38]
call fcn.00404100
add esp, 0xc
push 4
push 0x4cafe8
push eax
call fcn.00404100
add esp, 0xc
test byte [esp + 0x20], 1
je 0x418d69
push dword [esp + 0x28]
call fcn.0046a990
add esp, 4
push 7
push str.method_
push ebx
call fcn.00404100
add esp, 0xc
mov ecx, eax
push dword [esp + 0x1c]
call fcn.00427450
push 8
push str.__proto_
push eax
call fcn.00404100
add esp, 0xc
lea ecx, [esp + 0xc4]
push ecx
push eax
call fcn.00415570
add esp, 8
jmp 0x4191bd
shr ebx, 8
mov eax, esp
push edi
push ebx
push esi
push str._s_v_d__string__d
mov esi, eax
push eax
call fcn.0041c950
add esp, 0x14
lea eax, [esp + 0x34]
push esi
jmp 0x4191a2
mov dword [esp + 0x30], 0
jmp 0x4187bd
test edx, edx
je case.0x418325.229
mov ebx, edi
movzx edi, word [edi + 2]
mov word [esp + 0x20], di
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caead
push eax
call fcn.00404100
add esp, 0xc
movzx edx, byte [ebx + 1]
mov ecx, eax
push edx
call fcn.004276b0
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov word [esp + 0xd4], di
sub esp, 8
movzx eax, word [esp + 0xdc]
mov word [esp + 4], ax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
lea esi, [esp + 8]
mov ecx, esi
call fcn.00414c00
push esi
push ebx
call fcn.00410d70
add esp, 8
push 9
push str.____type_
push eax
call fcn.00404100
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.004155f0
jmp 0x4191a8
shr ebx, 8
mov eax, esp
push edi
push edi
push ebx
push esi
push str._s_v_d____invalid_string_idx__d______string__d
mov esi, eax
push eax
call fcn.0041c950
add esp, 0x18
jmp 0x418dc2
test edx, edx
je 0x418f02
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push eax
push esi
lea ebx, [esp + 0x3c]
push ebx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caf84
push eax
call fcn.00404100
add esp, 0xc
movzx esi, word [edi + 2]
movzx edx, word [edi]
shr edx, 0xc
lea ecx, [esp + 0xc4]
call fcn.004197c0
push 0x11
push str.______call_site_
push ebx
call fcn.00404100
add esp, 0xc
mov ecx, eax
push esi
call fcn.00427910
jmp 0x4191bd
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
push eax
push esi
lea esi, [esp + 0x3c]
push esi
call fcn.00404100
add esp, 0xc
push 2
push 0x4caf84
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [edi]
shr edx, 0xc
lea ecx, [esp + 0xc4]
call fcn.004197c0
push 9
push str.__thing_
push esi
call fcn.00404100
add esp, 0xc
movzx edx, word [edi + 2]
mov ecx, eax
push edx
call fcn.00427450
jmp 0x4191bd
lea eax, [esp + 0x21]
mov ecx, esp
push edi
push eax
push ebx
push esi
push str._s_v_d___s____string__d
mov esi, ecx
push ecx
call fcn.0041c950
add esp, 0x18
lea eax, [esp + 0x34]
push esi
push eax
call fcn.00410d70
add esp, 8
test byte [esp], 1
je 0x418f97
push dword [esp + 8]
call fcn.0046a990
add esp, 4
test byte [esp + 0x20], 1
lea esi, [esp + 0x38]
je case.default.0x41823e
push dword [esp + 0x28]
jmp 0x418a86
test edx, edx
je case.0x4183da.223
movzx eax, word [edi + 2]
mov dword [esp + 0x1c], eax
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caead
push eax
call fcn.00404100
add esp, 0xc
movzx edx, byte [edi + 1]
and edx, 0xf
mov ecx, eax
push edx
call fcn.004276b0
push 3
push 0x4caf11
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [edi]
shr edx, 0xc
mov ecx, eax
push edx
call fcn.004276b0
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov esi, dword [esp + 0x1c]
mov word [esp + 0xd0], si
sub esp, 8
movzx eax, word [esp + 0xd8]
jmp 0x4190d0
test edx, edx
je case.0x4183da.223
movzx eax, word [edi + 2]
mov dword [esp + 0x1c], eax
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
lea ecx, [esp + 0x34]
push eax
push esi
push ecx
call fcn.00404100
add esp, 0xc
push 2
push 0x4caead
push eax
call fcn.00404100
add esp, 0xc
movzx edx, byte [edi + 1]
and edx, 0xf
mov ecx, eax
push edx
call fcn.004276b0
push 3
push 0x4caf11
push eax
call fcn.00404100
add esp, 0xc
movzx edx, word [edi]
shr edx, 0xc
mov ecx, eax
push edx
call fcn.004276b0
push 2
push 0x4caeb0
push eax
call fcn.00404100
add esp, 0xc
mov ebx, eax
mov esi, dword [esp + 0x1c]
mov word [esp + 0xcc], si
sub esp, 8
movzx eax, word [esp + 0xd4]
mov word [esp + 4], ax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
lea edi, [esp + 8]
mov ecx, edi
call fcn.00414c00
push edi
push ebx
call fcn.00410d70
add esp, 8
push 9
push str.____type_
push eax
call fcn.00404100
add esp, 0xc
mov ecx, eax
push esi
call fcn.00427450
jmp 0x4191ab
mov eax, ebx
shr eax, 8
and eax, 0xf
shr ebx, 0xc
movzx ecx, word [edi + 2]
mov edi, esp
push ecx
push ebx
push eax
push esi
push str._s_v_d__v_d__thing__d
push edi
call fcn.0041c950
add esp, 0x18
jmp 0x41919d
test edx, edx
je case.0x418325.229
movzx esi, word [edi + 2]
mov eax, dword [edx + 0x24]
cmp dword [eax + 0x38], esi
jbe 0x419225
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x28]
mov ecx, dword [ecx + esi*4]
cmp byte [eax + ecx], 0
js 0x4192ba
add eax, ecx
add eax, 1
shr ebx, 8
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.004866e0
add esp, 8
test byte [esp + 0x20], 1
je 0x419237
mov eax, dword [esp + 0x28]
jmp 0x41923b
shr ebx, 8
movzx eax, word [edi + 2]
mov edi, esp
push eax
push ebx
push esi
push str._s_v_d__thing__d
push edi
call fcn.0041c950
add esp, 0x14
lea eax, [esp + 0x34]
push edi
push eax
call fcn.00410d70
add esp, 8
test byte [esp], 1
je 0x4191bd
push dword [esp + 8]
call fcn.0046a990
add esp, 4
lea esi, [esp + 0x38]
mov edi, dword [esp + 0xd8]
mov ecx, edi
push esi
call fcn.004044a0
mov dword [esp + 0x34], 0x4c6168
mov dword [esp + 0x6c], 0x4c617c
mov dword [esp + 0x38], 0x4c61c4
test byte [esp + 0x58], 1
je 0x4191fb
push dword [esp + 0x60]
call fcn.0046a990
add esp, 4
mov ecx, esi
call fcn.0041da40
lea ecx, [esp + 0x34]
push 0x4c6188
call fcn.00426cd0
lea ecx, [esp + 0x6c]
call fcn.0041d880
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
shr ebx, 8
mov edi, esp
push esi
push esi
push ebx
push str.const_string_v_d____invalid_string_idx__d______string__d
jmp 0x419194
lea eax, [esp + 0x21]
mov edi, esp
push esi
push eax
push ebx
push str.const_string_v_d___s____string__d
push edi
call fcn.0041c950
add esp, 0x14
lea eax, [esp + 0x34]
push edi
jmp 0x418f7c
add esi, eax
cmp byte [esi + 1], 0
js 0x419278
add esi, 2
jmp 0x418d2f
add eax, ecx
cmp byte [eax + 1], 0
js 0x419286
add eax, 2
jmp 0x418543
cmp byte [esi + 2], 0
js 0x419294
add esi, 3
jmp 0x418d2f
cmp byte [eax + 2], 0
js 0x4192a7
add eax, 3
jmp 0x418543
mov al, byte [esi + 3]
shr al, 7
movzx eax, al
add esi, eax
add esi, 4
jmp 0x418d2f
mov cl, byte [eax + 3]
shr cl, 7
movzx ecx, cl
add eax, ecx
add eax, 4
jmp 0x418543
add eax, ecx
cmp byte [eax + 1], 0
js 0x4192ca
add eax, 2
jmp 0x41915e
cmp byte [eax + 2], 0
js 0x4192d8
add eax, 3
jmp 0x41915e
mov cl, byte [eax + 3]
shr cl, 7
movzx ecx, cl
add eax, ecx
add eax, 4
jmp 0x41915e