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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov esi, esp
mov edi, edx
mov dword [esi + 4], ecx
mov eax, dword [0x481014]
xor eax, ebp
mov dword [esi + 0x78], eax
add edi, 5
cmp byte [edi + 1], 0x20
lea edi, [edi + 1]
je 0x40deb3
mov ebx, edi
movsx eax, byte [ebx]
push 4
push eax
push 0x47e4c8
call sub.VCRUNTIME140.dll_memchr
add esp, 0xc
inc ebx
test eax, eax
je 0x40debe
mov byte [ebx - 1], 0
push 0x464ff6
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x40df05
push 0x4676ff
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x40df73
xor ebx, ebx
jmp 0x40ef18
mov dword [esi + 0xc], esp
xor eax, eax
mov dword [esi + 0x40], eax
push eax
sub esp, 0x20
mov edi, esp
mov dword [edi], eax
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, 0xf
jbe 0x40dff8
test eax, eax
js 0x40efd4
mov dword [esi + 0x10], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0x1c], ecx
jb 0x40e00e
lea eax, [ecx + 0x24]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x40e01c
lea eax, [esi + 0x54]
push eax
push 0x47e4c8
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok_s]
add esp, 0xc
test eax, eax
je 0x40defe
mov edi, eax
push 0x45a740
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x40e1e6
lea eax, [esi + 0x54]
push eax
push 0x47e4c9
push 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok_s]
add esp, 0xc
xor ebx, ebx
mov dword [esi + 0x1c], eax
test eax, eax
je 0x40ef18
push 0x10
push 0
push edi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add esp, 0xc
mov dword [esi + 0xc], eax
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc4]
mov edx, dword [ecx + 4]
cmp byte [edx + 0xd], 0
mov dword [esi + 0x10], ecx
je 0x40e2fe
mov edi, edx
jmp 0x40e331
mov dword [edi + 0x10], eax
push eax
push ebx
push edi
mov ebx, eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
jmp 0x40e03e
lea eax, [ecx + 1]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, eax
mov edx, dword [esi + 0x10]
mov dword [edi + 0x10], edx
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x14], eax
push edx
push ebx
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], 0
mov dword [edi], ebx
lea eax, [esi + 0x40]
mov dword [edi + 0x18], eax
lea eax, [esi + 0x60]
mov dword [edi + 0x1c], eax
lea eax, [esi + 0x58]
mov dword [edi + 0x20], eax
mov ecx, edi
call fcn.00410020
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x4c]
mov dword [ecx - 4], eax
mov dword [ecx], ecx
test eax, eax
setne bl
je 0x40ef18
mov dword [esi + 0x30], ebx
mov ebx, dword [esi + 0x60]
mov eax, dword [esi + 0x64]
mov edx, dword [esi + 0x58]
mov dword [esi + 0xc], ebx
add ebx, edx
mov edi, dword [esi + 0x5c]
mov ecx, eax
adc ecx, edi
add ebx, 0xffffffff
adc ecx, 0xffffffff
mov dword [esi + 0x10], ecx
or edx, edi
je 0x40eeaf
cmp ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
sbb ecx, eax
jb 0x40eeaf
mov eax, dword [esi + 0x40]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 4]
lea edi, [ecx + eax*8]
add edi, 0x40
mov ecx, dword [edi + 0x10]
test ecx, ecx
jne 0x40e0ee
push 8
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esi + 0x18], eax
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
push 0x20
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov dword [edi + 0x10], ecx
mov dword [esi + 0x1c], ebx
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
cmp byte [ebx + 0xd], 0
mov dword [esi + 0x18], ecx
jne 0x40e6e8
mov dword [esi + 0x38], edi
mov ecx, dword [esi + 0x60]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x64]
mov edx, ebx
mov dword [esi + 8], eax
mov edi, dword [esi + 4]
cmp dword [edx + 0x10], edi
mov edi, dword [edx + 0x14]
sbb edi, ecx
lea edi, [edx + 8]
cmovae eax, edx
cmovae edi, edx
mov edx, dword [edi]
cmp byte [edx + 0xd], 0
je 0x40e114
mov dword [esi + 0x14], ecx
mov dword [esi + 0xc], eax
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x10]
cmp dword [ebx + 0x10], eax
mov edi, dword [ebx + 0x14]
sbb edi, ecx
lea edi, [ebx + 8]
cmovae edx, ebx
cmovae edi, ebx
mov ebx, dword [edi]
cmp byte [ebx + 0xd], 0
je 0x40e13f
mov ecx, dword [esi + 0xc]
cmp ecx, edx
jne 0x40e2da
mov edi, dword [esi + 8]
cmp ecx, edi
mov eax, dword [esi + 4]
je 0x40e2dd
mov edx, dword [ecx + 0x18]
mov ebx, dword [edx]
mov dword [esi + 0x2c], edx
mov edx, dword [edx + 4]
cmp eax, ebx
mov ecx, dword [esi + 0x14]
mov edi, ecx
sbb edi, edx
jb 0x40e2d5
xor ebx, eax
xor edx, ecx
or edx, ebx
mov eax, dword [esi + 0x1c]
mov edi, ecx
jne 0x40e1ac
mov edx, dword [esi + 0xc]
xor eax, dword [edx + 0x10]
mov ecx, dword [esi + 0x10]
xor ecx, dword [edx + 0x14]
or ecx, eax
je 0x40eeaf
mov edx, dword [esi + 0x58]
mov ecx, edi
mov edi, dword [esi + 0x5c]
mov ebx, dword [esi + 4]
add ebx, edx
mov eax, ecx
adc eax, edi
add ebx, 0xffffffff
adc eax, 0xffffffff
mov dword [esi + 0x10], eax
or edx, edi
je 0x40eeaf
mov eax, ecx
cmp ebx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
sbb ecx, eax
mov edi, dword [esi + 0x2c]
jae 0x40e0b3
jmp 0x40eeaf
lea ebx, [esi + 0x54]
push ebx
push 0x47e4c8
push 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok_s]
add esp, 0xc
test eax, eax
je 0x40defe
mov edi, eax
push ebx
push 0x47e4c8
push 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok_s]
add esp, 0xc
test eax, eax
je 0x40defe
mov ecx, ebx
mov ebx, eax
push ecx
push 0x47e4c9
push 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok_s]
add esp, 0xc
xor ecx, ecx
test eax, eax
je 0x40defe
mov edx, 0x10
push edx
push ecx
push edi
mov dword [esi + 0xc], eax
xor edi, edi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add esp, 0xc
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], eax
mov eax, 0x10
push eax
push edi
push ebx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
add esp, 0xc
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], eax
mov dword [esi + 0x60], edi
mov dword [esi + 0x74], 0xf
mov byte [esi + 0x60], 0
mov ebx, dword [esi + 0xc]
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
cmp eax, 0xf
jbe 0x40ed6c
test edi, edi
js 0x40efd4
mov eax, edi
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0x10], ecx
jb 0x40ef3e
lea eax, [ecx + 0x24]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x40ef4c
mov ecx, dword [esi + 0xc]
mov edx, ecx
mov edi, dword [esi + 8]
cmp edx, edi
je 0x40e3d6
mov edi, dword [edx + 0x18]
mov eax, dword [esi + 0x1c]
cmp eax, dword [edi]
mov ebx, dword [esi + 0x10]
sbb ebx, dword [edi + 4]
mov edi, dword [esi + 8]
setae bl
jmp 0x40e3d8
mov ebx, ecx
mov edi, edx
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0x14]
cmp ecx, dword [esi + 0xc]
mov edx, eax
sbb edx, 0
lea edx, [edi + 8]
cmovae ebx, edi
cmovae edx, edi
mov edx, dword [edx]
cmp byte [edx + 0xd], 0
je 0x40e300
mov edx, dword [esi + 0xc]
cmp ecx, edx
sbb eax, 0
setae al
mov ecx, ebx
movzx ebx, al
mov eax, ecx
cmp byte [ecx + 0xd], 0
jne 0x40e352
mov dword [esi + 8], 0
mov edx, dword [esi + 0xc]
cmp edx, dword [eax + 0x10]
mov edx, dword [esi + 8]
sbb edx, dword [eax + 0x14]
jae 0x40ed07
mov eax, dword [esi + 4]
cmp dword [eax + 0xc8], 0x5555555
je 0x40efcf
push 0x30
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esi + 0xc]
mov dword [eax + 0x10], ecx
xor ecx, ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], 0xf
mov byte [eax + 0x18], 0
mov ecx, dword [esi + 0x10]
mov dword [eax], ecx
mov dword [eax + 8], ecx
mov word [eax + 0xc], 0
mov ecx, dword [esi + 4]
inc dword [ecx + 0xc8]
mov edx, dword [ecx + 0xc4]
mov dword [eax + 4], edi
cmp edx, edi
mov dword [esi + 8], eax
je 0x40e6ef
mov ecx, ebx
mov ebx, eax
add ebx, 4
test ecx, ecx
je 0x40eb3e
mov dword [edi], eax
mov eax, edx
cmp dword [edx], edi
jne 0x40eb4e
jmp 0x40eb49
xor ebx, ebx
cmp ecx, edi
mov eax, dword [esi + 0x1c]
je 0x40e3fd
mov eax, dword [esi + 0xc]
mov edi, dword [eax + 0x18]
mov ecx, ebx
mov ebx, dword [edi + 4]
mov eax, dword [esi + 4]
cmp dword [edi], eax
mov eax, dword [esi + 0x1c]
sbb ebx, dword [esi + 0x14]
mov ebx, ecx
jb 0x40eeaf
test bl, bl
je 0x40e432
cmp eax, dword [edx + 0x10]
mov eax, dword [esi + 0x10]
sbb eax, dword [edx + 0x14]
jb 0x40eeaf
mov eax, dword [edx + 8]
cmp byte [eax + 0xd], 0
je 0x40ef2c
mov ecx, dword [esi + 0xc]
mov edi, dword [edx + 4]
cmp byte [edi + 0xd], 0
jne 0x40e437
cmp edx, dword [edi + 8]
mov edx, edi
je 0x40e420
jmp 0x40e437
mov edi, edx
mov ecx, dword [esi + 0xc]
cmp ecx, edi
je 0x40e6e8
push 8
mov dword [esi + 0x24], edi
mov edi, ecx
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ebx, eax
mov dword [eax + 4], 0
push 0x20
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebx], eax
mov cl, 1
mov dword [esi + 0x14], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x28], eax
lea edx, [edi + 0x10]
test cl, cl
mov dword [esi + 0x34], edx
je 0x40e4ca
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov dword [esi + 0x18], 0
cmp byte [eax + 0xd], 0
jne 0x40e652
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x20], edi
mov edi, dword [edx]
mov eax, ebx
mov ecx, dword [edx + 4]
mov dword [esi + 8], edi
cmp dword [ebx + 0x10], edi
mov edi, dword [esi + 0x20]
mov dword [esi + 4], ecx
sbb dword [esi + 0x3c], ecx
jae 0x40e588
jmp 0x40e652
mov dword [esi + 0x20], edi
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
mov edi, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x14]
cmp dword [edx], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
je 0x40e570
mov eax, edi
cmp ebx, edi
mov edx, ecx
mov edi, dword [esi + 0x18]
sbb edx, edi
jae 0x40e5a6
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
mov edi, dword [esi + 0x20]
je 0x40e533
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 4]
cmp byte [edx + 0xd], 0
jne 0x40e53e
mov ecx, eax
mov eax, edx
cmp ecx, dword [edx]
jne 0x40e6d7
mov edx, dword [eax + 4]
cmp byte [edx + 0xd], 0
mov ecx, eax
je 0x40e519
jmp 0x40e6d9
mov edx, eax
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
je 0x40e533
mov ecx, edx
mov eax, dword [ecx + 0x14]
mov ebx, edi
mov edi, ecx
mov ecx, dword [esi + 8]
mov edx, edi
cmp dword [edi + 0x10], ecx
mov edi, ebx
sbb eax, dword [esi + 4]
jae 0x40e588
mov ebx, edx
mov eax, dword [edx + 8]
xor ecx, ecx
cmp byte [eax + 0xd], 0
sete cl
mov dword [esi + 0x18], ecx
cmove ebx, dword [esi + 0x28]
jmp 0x40e652
cmp ebx, edi
sbb ecx, dword [esi + 0x18]
mov ecx, 1
mov dword [esi + 0x18], ecx
mov ebx, eax
mov edi, dword [esi + 0x20]
jb 0x40e652
mov eax, edi
mov edx, dword [esi + 0x14]
mov edi, dword [edx + 4]
cmp byte [edi + 0xd], 0
je 0x40e5f6
mov dword [esi + 0x18], 0
mov ebx, edi
mov edi, eax
jmp 0x40e62c
cmp eax, ebx
sbb edi, ecx
mov edi, dword [esi + 0x20]
jae 0x40e698
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 0xd]
test dl, dl
je 0x40e5d4
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x40e642
cmp eax, dword [ecx + 8]
mov ebx, ecx
mov eax, ecx
je 0x40e5c0
jmp 0x40e5e4
mov ebx, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x40e5d4
cmp byte [ebx + 0xd], 0
jne 0x40e644
mov eax, dword [esi + 8]
mov ecx, ebx
cmp eax, dword [ebx + 0x10]
mov eax, dword [esi + 4]
sbb eax, dword [ebx + 0x14]
jae 0x40e588
jmp 0x40e644
mov dword [esi + 0x20], eax
mov ebx, edi
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp eax, dword [esi + 8]
mov edi, ecx
sbb edi, dword [esi + 4]
lea edi, [ebx + 8]
cmovae edx, ebx
cmovae edi, ebx
mov edi, dword [edi]
cmp byte [edi + 0xd], 0
je 0x40e5f9
cmp eax, dword [esi + 8]
sbb ecx, dword [esi + 4]
setae al
movzx eax, al
mov dword [esi + 0x18], eax
mov edi, dword [esi + 0x20]
cmp byte [edx + 0xd], 0
jne 0x40e652
mov eax, dword [esi + 8]
cmp eax, dword [edx + 0x10]
mov eax, dword [esi + 4]
sbb eax, dword [edx + 0x14]
jb 0x40e652
jmp 0x40e698
mov ebx, ecx
xor eax, eax
test dl, dl
sete al
mov dword [esi + 0x18], eax
cmovne ebx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
cmp dword [eax + 4], 0x7ffffff
je 0x40efcf
push 0x20
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esi + 0x34]
movups xmm0, xmmword [ecx]
movups xmmword [eax + 0x10], xmm0
mov ecx, dword [esi + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov word [eax + 0xc], 0
mov ecx, dword [esi + 0x2c]
mov edx, ebx
push eax
push dword [esi + 0x18]
call fcn.00431a30
add esp, 8
mov ecx, dword [edi + 8]
cmp byte [ecx + 0xd], 0
mov eax, dword [esi + 0x28]
je 0x40e6b6
mov edx, dword [edi + 4]
cmp byte [edx + 0xd], 0
jne 0x40e6c0
cmp edi, dword [edx + 8]
mov edi, edx
je 0x40e6a4
jmp 0x40e6c0
mov edx, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x40e6b6
cmp edx, dword [esi + 0x24]
je 0x40e6fc
mov cl, byte [eax + 0xd]
mov edi, dword [esi + 0x2c]
mov edi, dword [edi]
mov dword [esi + 0x14], edi
mov edi, edx
jmp 0x40e47c
mov edx, eax
cmp byte [ecx + 0xd], 0
jne 0x40e540
jmp 0x40e53e
xor ebx, ebx
jmp 0x40edba
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
jmp 0x40ed00
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 0x10]
mov dword [esi + 4], eax
mov ebx, dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [ebx], eax
je 0x40ed87
mov edx, dword [eax + 8]
mov bl, byte [edx + 0xd]
mov dword [esi + 0xc], eax
mov ecx, eax
mov dword [esi + 8], edx
mov eax, edx
mov byte [esi + 0x14], bl
test bl, bl
je 0x40e73b
mov ebx, dword [ecx + 4]
cmp byte [ebx + 0xd], 0
jne 0x40e745
cmp ecx, dword [ebx + 8]
mov ecx, ebx
je 0x40e729
jmp 0x40e745
mov ebx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x40e73b
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
cmp byte [esi + 0x14], 0
je 0x40e763
mov ecx, dword [edx + 4]
cmp byte [ecx + 0xd], 0
jne 0x40e76d
cmp edx, dword [ecx + 8]
mov edx, ecx
je 0x40e751
jmp 0x40e76d
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x40e763
mov edi, dword [esi + 0xc]
mov eax, dword [edi]
mov dl, byte [eax + 0xd]
mov byte [esi + 0x18], dl
test dl, dl
mov edx, dword [esi + 8]
mov dword [esi + 0x34], eax
cmove edx, eax
mov al, byte [esi + 0x18]
or byte [esi + 0x14], al
je 0x40e7b3
mov ecx, dword [edi + 4]
cmp byte [edx + 0xd], 0
jne 0x40e797
mov dword [edx + 4], ecx
mov dword [esi + 8], edx
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp dword [eax + 4], edi
mov dword [esi + 0x14], ecx
je 0x40e80c
cmp dword [ecx], edi
je 0x40e814
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
jmp 0x40e819
mov edx, dword [esi + 0x34]
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
cmp ecx, edi
je 0x40e874
mov dword [edx + 4], ecx
mov eax, dword [edi]
mov dword [ecx], eax
mov dword [esi + 0x14], ecx
cmp ecx, dword [edi + 8]
mov edx, dword [esi + 4]
je 0x40e7f9
mov edi, dword [ecx + 4]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x40e7e5
mov dword [eax + 4], edi
mov dword [esi + 0x14], edi
mov dword [edi], eax
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 8]
mov dword [ecx + 8], eax
mov eax, dword [edi + 8]
mov dword [eax + 4], ecx
mov eax, dword [edx]
cmp dword [eax + 4], edi
je 0x40e87c
mov eax, dword [edi + 4]
cmp dword [eax], edi
je 0x40e881
mov dword [eax + 8], ecx
jmp 0x40e883
mov ecx, dword [esi + 8]
mov dword [eax + 4], ecx
jmp 0x40e819
mov eax, dword [esi + 8]
mov dword [ecx], eax
mov edi, dword [esi + 0x24]
mov ecx, dword [edx]
mov eax, dword [esi + 0xc]
cmp dword [ecx], eax
jne 0x40e845
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
mov eax, dword [esi + 0x14]
jne 0x40e83e
mov edx, dword [esi + 8]
mov eax, edx
mov edx, dword [edx]
cmp byte [edx + 0xd], 0
je 0x40e834
mov dword [ecx], eax
mov edx, dword [esi + 4]
mov ecx, dword [edx]
mov eax, dword [esi + 0xc]
cmp dword [ecx + 8], eax
je 0x40e852
mov eax, dword [esi + 0xc]
jmp 0x40e8a0
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
mov edx, dword [esi + 0x14]
jne 0x40e86c
mov eax, dword [esi + 8]
mov edx, eax
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
je 0x40e861
mov dword [ecx + 8], edx
mov eax, dword [esi + 0xc]
jmp 0x40e89d
mov edx, dword [esi + 8]
jmp 0x40e78b
mov dword [eax + 4], ecx
jmp 0x40e883
mov dword [eax], ecx
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 4]
mov dword [ecx + 4], eax
mov al, byte [ecx + 0xc]
mov dl, byte [edi + 0xc]
mov byte [ecx + 0xc], dl
mov byte [edi + 0xc], al
mov eax, edi
mov edi, dword [esi + 0x24]
mov edx, dword [esi + 4]
cmp byte [eax + 0xc], 1
jne 0x40eb17
mov eax, dword [edx]
mov edi, dword [esi + 8]
cmp edi, dword [eax + 4]
je 0x40eb10
mov ecx, dword [esi + 0x14]
cmp byte [edi + 0xc], 1
jne 0x40eb10
mov edx, dword [ecx]
mov dword [esi + 8], edi
cmp edi, edx
mov edi, ecx
je 0x40e911
cmp byte [edx + 0xc], 0
jne 0x40e963
mov byte [edx + 0xc], 1
mov byte [ecx + 0xc], 0
mov edx, dword [ecx]
mov eax, dword [edx + 8]
mov dword [ecx], eax
mov eax, dword [edx + 8]
cmp byte [eax + 0xd], 0
jne 0x40e8f5
mov dword [eax + 4], ecx
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp dword [eax + 4], ecx
je 0x40e951
mov eax, dword [ecx + 4]
cmp dword [eax + 8], ecx
je 0x40e956
mov dword [eax], edx
jmp 0x40e959
mov edx, dword [ecx + 8]
cmp byte [edx + 0xc], 0
jne 0x40e994
mov byte [edx + 0xc], 1
mov byte [ecx + 0xc], 0
mov edx, dword [ecx + 8]
mov eax, dword [edx]
mov dword [ecx + 8], eax
mov eax, dword [edx]
cmp byte [eax + 0xd], 0
jne 0x40e935
mov dword [eax + 4], ecx
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp dword [eax + 4], ecx
je 0x40e983
mov eax, dword [ecx + 4]
cmp dword [eax], ecx
je 0x40e988
mov dword [eax + 8], edx
jmp 0x40e98a
mov dword [eax + 4], edx
jmp 0x40e959
mov dword [eax + 8], edx
mov ecx, edi
mov dword [edx + 8], edi
mov dword [edi + 4], edx
mov edx, dword [edi]
cmp byte [edx + 0xd], 0
jne 0x40e9b6
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cmp byte [eax + 0xc], 1
mov cl, byte [ecx + 0xc]
jne 0x40e9cc
cmp cl, 1
mov ecx, edi
je 0x40e9b2
jmp 0x40ea5b
mov dword [eax + 4], edx
jmp 0x40e98a
mov dword [eax], edx
mov ecx, edi
mov dword [edx], edi
mov dword [edi + 4], edx
mov edx, dword [edi + 8]
cmp byte [edx + 0xd], 0
jne 0x40e9b6
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cmp byte [ecx + 0xc], 1
mov al, byte [eax + 0xc]
jne 0x40ea08
cmp al, 1
mov ecx, edi
jne 0x40eabc
mov byte [edx + 0xc], 0
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp edi, dword [eax + 4]
jne 0x40e8bb
jmp 0x40eb10
cmp cl, 1
jne 0x40ea43
mov byte [eax + 0xc], 1
mov byte [edx + 0xc], 0
mov ecx, dword [edx + 8]
mov eax, dword [ecx]
mov dword [edx + 8], eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
jne 0x40e9ec
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp dword [eax + 4], edx
je 0x40ea4b
mov eax, dword [edx + 4]
cmp dword [eax], edx
je 0x40ea50
mov dword [eax + 8], ecx
jmp 0x40ea52
cmp al, 1
jne 0x40ea47
mov byte [ecx + 0xc], 1
mov byte [edx + 0xc], 0
mov ecx, dword [edx]
mov eax, dword [ecx + 8]
mov dword [edx], eax
mov eax, dword [ecx + 8]
cmp byte [eax + 0xd], 0
jne 0x40ea27
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp dword [eax + 4], edx
je 0x40eaa9
mov eax, dword [edx + 4]
cmp dword [eax + 8], edx
je 0x40eaae
mov dword [eax], ecx
jmp 0x40eab1
mov ecx, edi
jmp 0x40ea5b
mov ecx, edi
jmp 0x40eabc
mov dword [eax + 4], ecx
jmp 0x40ea52
mov dword [eax], ecx
mov dword [ecx], edx
mov dword [edx + 4], ecx
mov ecx, edi
mov edx, dword [edi]
mov al, byte [ecx + 0xc]
mov byte [edx + 0xc], al
mov al, 1
mov byte [ecx + 0xc], al
mov eax, dword [edx]
mov dl, 1
mov byte [eax + 0xc], dl
mov edx, dword [ecx]
mov eax, dword [edx + 8]
mov dword [ecx], eax
mov eax, dword [edx + 8]
cmp byte [eax + 0xd], 0
jne 0x40ea80
mov dword [eax + 4], ecx
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp dword [eax + 4], ecx
je 0x40ea9c
mov eax, dword [ecx + 4]
cmp dword [eax + 8], ecx
je 0x40eaa1
mov dword [eax], edx
jmp 0x40eaa4
mov dword [eax + 4], edx
jmp 0x40eaa4
mov dword [eax + 8], edx
mov dword [edx + 8], edi
jmp 0x40eb07
mov dword [eax + 4], ecx
jmp 0x40eab1
mov dword [eax + 8], ecx
mov dword [ecx + 8], edx
mov dword [edx + 4], ecx
mov ecx, edi
mov edx, dword [edi + 8]
mov al, byte [ecx + 0xc]
mov byte [edx + 0xc], al
mov al, 1
mov byte [ecx + 0xc], al
mov eax, dword [edx + 8]
mov dl, 1
mov byte [eax + 0xc], dl
mov edx, dword [ecx + 8]
mov eax, dword [edx]
mov dword [ecx + 8], eax
mov eax, dword [edx]
cmp byte [eax + 0xd], 0
jne 0x40eae2
mov dword [eax + 4], ecx
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
cmp dword [eax + 4], ecx
je 0x40eafe
mov eax, dword [ecx + 4]
cmp dword [eax], ecx
je 0x40eb03
mov dword [eax + 8], edx
jmp 0x40eb05
mov dword [eax + 4], edx
jmp 0x40eb05
mov dword [eax], edx
mov dword [edx], edi
mov dword [edi + 4], edx
mov edi, dword [esi + 8]
mov edx, dword [esi + 4]
mov byte [edi + 0xc], 1
mov edi, dword [esi + 0x24]
mov eax, dword [edx + 4]
test eax, eax
je 0x40eb22
dec eax
mov dword [edx + 4], eax
push 0x20
push dword [esi + 0xc]
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov eax, ebx
cmp ebx, edi
jne 0x40e712
jmp 0x40edae
mov dword [edi + 8], eax
cmp dword [edx + 8], edi
jne 0x40eb4e
lea eax, [edx + 8]
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov dword [esi + 0x14], edx
mov edx, dword [ebx]
cmp byte [edx + 0xc], 0
jne 0x40ecfa
lea eax, [edx + 0xc]
mov edi, dword [esi + 8]
mov dword [esi + 0xc], ebx
mov ebx, dword [edx + 4]
mov ecx, dword [ebx]
cmp edx, ecx
mov dword [esi + 0x10], ebx
je 0x40eb88
cmp byte [ecx + 0xc], 0
je 0x40eba2
cmp edi, dword [edx]
je 0x40ebbf
mov eax, edx
mov edx, edi
mov ebx, dword [esi + 4]
jmp 0x40ec36
mov ecx, dword [ebx + 8]
cmp byte [ecx + 0xc], 0
je 0x40eba2
cmp edi, dword [edx + 8]
je 0x40ebf3
mov eax, edx
mov edx, edi
mov ebx, dword [esi + 4]
jmp 0x40ec93
mov dl, 1
mov byte [eax], dl
mov byte [ecx + 0xc], dl
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov byte [eax + 0xc], 0
mov eax, dword [ecx]
mov edx, dword [eax + 4]
jmp 0x40ece5
mov eax, dword [edi + 8]
mov dword [edx], eax
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
jne 0x40ebd9
mov dword [eax + 4], edx
mov ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov eax, dword [ebx + 0xc4]
cmp dword [eax + 4], edx
je 0x40ec26
mov eax, dword [edx + 4]
cmp dword [eax + 8], edx
je 0x40ec2b
mov dword [eax], edi
jmp 0x40ec2e
mov eax, dword [edi]
mov dword [edx + 8], eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
jne 0x40ec0c
mov dword [eax + 4], edx
mov ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov eax, dword [ebx + 0xc4]
cmp dword [eax + 4], edx
je 0x40ec85
mov eax, dword [edx + 4]
cmp dword [eax], edx
je 0x40ec8a
mov dword [eax + 8], edi
jmp 0x40ec8c
mov dword [eax + 4], edi
jmp 0x40ec2e
mov dword [eax + 8], edi
mov dword [edi + 8], edx
mov dword [edx + 4], edi
mov eax, edi
mov byte [eax + 0xc], 1
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov byte [eax + 0xc], 0
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edi, dword [ecx]
mov dword [eax + 8], edi
mov edi, dword [ecx]
cmp byte [edi + 0xd], 0
jne 0x40ec5d
mov dword [edi + 4], eax
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [ebx + 0xc4]
cmp dword [edi + 4], eax
je 0x40ec7a
mov edi, dword [eax + 4]
cmp dword [edi], eax
je 0x40ec7f
mov dword [edi + 8], ecx
jmp 0x40ec81
mov dword [edi + 4], ecx
jmp 0x40ec81
mov dword [edi], ecx
mov dword [ecx], eax
jmp 0x40ece2
mov dword [eax + 4], edi
jmp 0x40ec8c
mov dword [eax], edi
mov dword [edi], edx
mov dword [edx + 4], edi
mov eax, edi
mov byte [eax + 0xc], 1
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov byte [eax + 0xc], 0
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov edi, dword [ecx + 8]
mov dword [eax], edi
mov edi, dword [ecx + 8]
cmp byte [edi + 0xd], 0
jne 0x40ecba
mov dword [edi + 4], eax
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [ebx + 0xc4]
cmp dword [edi + 4], eax
je 0x40ecd7
mov edi, dword [eax + 4]
cmp dword [edi + 8], eax
je 0x40ecdc
mov dword [edi], ecx
jmp 0x40ecdf
mov dword [edi + 4], ecx
jmp 0x40ecdf
mov dword [edi + 8], ecx
mov dword [ecx + 8], eax
mov dword [eax + 4], ecx
mov edi, edx
lea ebx, [edx + 4]
mov edx, dword [edx + 4]
lea eax, [edx + 0xc]
cmp byte [edx + 0xc], 0
je 0x40eb63
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 4]
mov byte [eax + 0xc], 1
mov eax, dword [esi + 8]
lea ecx, [eax + 0x18]
mov dword [esi + 4], ecx
push dword [esi + 0x1c]
mov ebx, eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
mov eax, dword [ebx + 0x2c]
cmp eax, edi
jae 0x40ed41
sub esp, 0xc
mov al, byte [esi + 0x60]
mov byte [esp + 4], al
mov eax, dword [esi + 0x1c]
mov dword [esp + 8], eax
mov dword [esp], edi
mov ecx, dword [esi + 4]
call fcn.004014b0
jmp 0x40ed65
mov ecx, ebx
mov edx, dword [esi + 0x1c]
cmp eax, 0x10
mov eax, dword [esi + 4]
jb 0x40ed51
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x28], edi
push edi
push edx
push eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
mov bl, 1
jmp 0x40ef18
lea eax, [esi + 0x60]
mov dword [eax + 0x10], edi
push edi
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + edi + 0x60], 0
jmp 0x40ef69
mov ecx, dword [esi + 0x24]
cmp byte [ecx + 0xd], 0
je 0x40e712
mov ecx, dword [ebx + 4]
call fcn.0042e900
mov dword [ebx + 4], ebx
mov dword [ebx], ebx
mov dword [ebx + 8], ebx
mov eax, dword [esi + 4]
mov dword [eax + 4], 0
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x2c]
lea edi, [esi + 0x4c]
push 0x18
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edx, eax
movsd xmm0, qword [esi + 0x60]
movsd qword [eax], xmm0
mov eax, dword [esi + 0x48]
mov dword [edx + 8], eax
test eax, eax
je 0x40edf2
mov ecx, edi
mov eax, ecx
mov ecx, dword [ecx]
cmp ecx, edi
jne 0x40edde
mov ecx, edx
add ecx, 0xc
mov dword [eax], ecx
mov dword [edx + 0xc], edi
jmp 0x40edfa
mov eax, edx
add eax, 0xc
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ebx
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov edi, dword [eax + 4]
cmp byte [edi + 0xd], 0
mov dword [esi + 4], edx
mov dword [esi + 0xc], eax
je 0x40ee1f
mov dword [esi + 8], 0
mov ebx, edi
mov edi, dword [esi + 0x1c]
jmp 0x40ee51
mov ebx, edi
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp edx, dword [esi + 0x1c]
mov edi, ecx
sbb edi, dword [esi + 0x10]
lea edi, [ebx + 8]
cmovae eax, ebx
cmovae edi, ebx
mov edi, dword [edi]
cmp byte [edi + 0xd], 0
je 0x40ee1f
mov edi, dword [esi + 0x1c]
cmp edx, edi
sbb ecx, dword [esi + 0x10]
setae cl
movzx ecx, cl
mov dword [esi + 8], ecx
cmp byte [eax + 0xd], 0
jne 0x40ee62
cmp edi, dword [eax + 0x10]
mov ecx, dword [esi + 0x10]
sbb ecx, dword [eax + 0x14]
jae 0x40eeaf
mov edi, dword [esi + 0x18]
cmp dword [edi + 4], 0x7ffffff
je 0x40efcf
push 0x20
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 0x18], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov word [eax + 0xc], 0
mov ecx, edi
mov edx, ebx
push eax
push dword [esi + 8]
call fcn.00431a30
add esp, 8
mov eax, dword [esi + 0x4c]
lea edi, [esi + 0x4c]
cmp eax, edi
je 0x40eeca
mov edx, eax
mov ebx, dword [esi + 0x30]
mov ecx, edx
mov edx, dword [edx]
cmp edx, edi
jne 0x40eebe
mov dword [ecx], eax
jmp 0x40ef18
mov edi, dword [esi + 0x48]
test edi, edi
mov ebx, dword [esi + 0x30]
je 0x40ef18
mov eax, dword [edi + 0x38]
cmp eax, 0x10
jb 0x40ef0f
mov ecx, dword [edi + 0x24]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x40ef02
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x40efd9
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov ebx, dword [esi + 0x30]
push edi
call sub.mozglue.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esi + 0x78]
xor ecx, ebp
call fcn.0043f990
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0xc]
mov edi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x40ef2f
jmp 0x40e437
lea eax, [ecx + 1]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ebx, eax
mov dword [esi + 0x70], edi
mov eax, dword [esi + 0x10]
mov dword [esi + 0x74], eax
push edi
push dword [esi + 0xc]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0
mov dword [esi + 0x60], ebx
mov edx, dword [esi + 4]
add edx, 0xb8
xor ecx, ecx
lea eax, [esi + 0x58]
mov dword [eax + 4], ecx
mov dword [eax], ecx
lea edi, [esi + 0x60]
mov ecx, edx
lea ebx, [esi + 0x40]
lea edx, [esi + 0x48]
push edi
push ebx
push eax
call fcn.00431c20
add esp, 0xc
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x40ed65
mov ecx, dword [esi + 0x60]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x40efc0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x40efd9
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
jmp 0x40ed65
call fcn.00441b80
call fcn.004415a0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3