Function at 0x40de80
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 0x40dea3
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 0x40deae
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 0x40def5
push 0x4676ff
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
je 0x40df63
xor ebx, ebx
jmp 0x40ef08
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 0x40dfe8
test eax, eax
js 0x40efc4
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 0x40dffe
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 0x40e00c
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 0x40deee
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 0x40e1d6
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 0x40ef08
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 0x40e2ee
mov edi, edx
jmp 0x40e321
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 0x40e02e
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.00410010
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x4c]
mov dword [ecx - 4], eax
mov dword [ecx], ecx
test eax, eax
setne bl
je 0x40ef08
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 0x40ee9f
cmp ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
sbb ecx, eax
jb 0x40ee9f
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 0x40e0de
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 0x40e6d8
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 0x40e104
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 0x40e12f
mov ecx, dword [esi + 0xc]
cmp ecx, edx
jne 0x40e2ca
mov edi, dword [esi + 8]
cmp ecx, edi
mov eax, dword [esi + 4]
je 0x40e2cd
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 0x40e2c5
xor ebx, eax
xor edx, ecx
or edx, ebx
mov eax, dword [esi + 0x1c]
mov edi, ecx
jne 0x40e19c
mov edx, dword [esi + 0xc]
xor eax, dword [edx + 0x10]
mov ecx, dword [esi + 0x10]
xor ecx, dword [edx + 0x14]
or ecx, eax
je 0x40ee9f
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 0x40ee9f
mov eax, ecx
cmp ebx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
sbb ecx, eax
mov edi, dword [esi + 0x2c]
jae 0x40e0a3
jmp 0x40ee9f
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 0x40deee
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 0x40deee
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 0x40deee
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 0x40ed5c
test edi, edi
js 0x40efc4
mov eax, edi
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0x10], ecx
jb 0x40ef2e
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 0x40ef3c
mov ecx, dword [esi + 0xc]
mov edx, ecx
mov edi, dword [esi + 8]
cmp edx, edi
je 0x40e3c6
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 0x40e3c8
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 0x40e2f0
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 0x40e342
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 0x40ecf7
mov eax, dword [esi + 4]
cmp dword [eax + 0xc8], 0x5555555
je 0x40efbf
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 0x40e6df
mov ecx, ebx
mov ebx, eax
add ebx, 4
test ecx, ecx
je 0x40eb2e
mov dword [edi], eax
mov eax, edx
cmp dword [edx], edi
jne 0x40eb3e
jmp 0x40eb39
xor ebx, ebx
cmp ecx, edi
mov eax, dword [esi + 0x1c]
je 0x40e3ed
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 0x40ee9f
test bl, bl
je 0x40e422
cmp eax, dword [edx + 0x10]
mov eax, dword [esi + 0x10]
sbb eax, dword [edx + 0x14]
jb 0x40ee9f
mov eax, dword [edx + 8]
cmp byte [eax + 0xd], 0
je 0x40ef1c
mov ecx, dword [esi + 0xc]
mov edi, dword [edx + 4]
cmp byte [edi + 0xd], 0
jne 0x40e427
cmp edx, dword [edi + 8]
mov edx, edi
je 0x40e410
jmp 0x40e427
mov edi, edx
mov ecx, dword [esi + 0xc]
cmp ecx, edi
je 0x40e6d8
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 0x40e4ba
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 0x40e642
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 0x40e578
jmp 0x40e642
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 0x40e560
mov eax, edi
cmp ebx, edi
mov edx, ecx
mov edi, dword [esi + 0x18]
sbb edx, edi
jae 0x40e596
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
mov edi, dword [esi + 0x20]
je 0x40e523
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 4]
cmp byte [edx + 0xd], 0
jne 0x40e52e
mov ecx, eax
mov eax, edx
cmp ecx, dword [edx]
jne 0x40e6c7
mov edx, dword [eax + 4]
cmp byte [edx + 0xd], 0
mov ecx, eax
je 0x40e509
jmp 0x40e6c9
mov edx, eax
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
je 0x40e523
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 0x40e578
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 0x40e642
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 0x40e642
mov eax, edi
mov edx, dword [esi + 0x14]
mov edi, dword [edx + 4]
cmp byte [edi + 0xd], 0
je 0x40e5e6
mov dword [esi + 0x18], 0
mov ebx, edi
mov edi, eax
jmp 0x40e61c
cmp eax, ebx
sbb edi, ecx
mov edi, dword [esi + 0x20]
jae 0x40e688
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + 8]
mov dl, byte [ecx + 0xd]
test dl, dl
je 0x40e5c4
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x40e632
cmp eax, dword [ecx + 8]
mov ebx, ecx
mov eax, ecx
je 0x40e5b0
jmp 0x40e5d4
mov ebx, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x40e5c4
cmp byte [ebx + 0xd], 0
jne 0x40e634
mov eax, dword [esi + 8]
mov ecx, ebx
cmp eax, dword [ebx + 0x10]
mov eax, dword [esi + 4]
sbb eax, dword [ebx + 0x14]
jae 0x40e578
jmp 0x40e634
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 0x40e5e9
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 0x40e642
mov eax, dword [esi + 8]
cmp eax, dword [edx + 0x10]
mov eax, dword [esi + 4]
sbb eax, dword [edx + 0x14]
jb 0x40e642
jmp 0x40e688
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 0x40efbf
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.00431a20
add esp, 8
mov ecx, dword [edi + 8]
cmp byte [ecx + 0xd], 0
mov eax, dword [esi + 0x28]
je 0x40e6a6
mov edx, dword [edi + 4]
cmp byte [edx + 0xd], 0
jne 0x40e6b0
cmp edi, dword [edx + 8]
mov edi, edx
je 0x40e694
jmp 0x40e6b0
mov edx, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0xd], 0
je 0x40e6a6
cmp edx, dword [esi + 0x24]
je 0x40e6ec
mov cl, byte [eax + 0xd]
mov edi, dword [esi + 0x2c]
mov edi, dword [edi]
mov dword [esi + 0x14], edi
mov edi, edx
jmp 0x40e46c
mov edx, eax
cmp byte [ecx + 0xd], 0
jne 0x40e530
jmp 0x40e52e
xor ebx, ebx
jmp 0x40edaa
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
jmp 0x40ecf0
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 0x40ed77
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 0x40e72b
mov ebx, dword [ecx + 4]
cmp byte [ebx + 0xd], 0
jne 0x40e735
cmp ecx, dword [ebx + 8]
mov ecx, ebx
je 0x40e719
jmp 0x40e735
mov ebx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x40e72b
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
cmp byte [esi + 0x14], 0
je 0x40e753
mov ecx, dword [edx + 4]
cmp byte [ecx + 0xd], 0
jne 0x40e75d
cmp edx, dword [ecx + 8]
mov edx, ecx
je 0x40e741
jmp 0x40e75d
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x40e753
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 0x40e7a3
mov ecx, dword [edi + 4]
cmp byte [edx + 0xd], 0
jne 0x40e787
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 0x40e7fc
cmp dword [ecx], edi
je 0x40e804
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
jmp 0x40e809
mov edx, dword [esi + 0x34]
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
cmp ecx, edi
je 0x40e864
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 0x40e7e9
mov edi, dword [ecx + 4]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x40e7d5
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 0x40e86c
mov eax, dword [edi + 4]
cmp dword [eax], edi
je 0x40e871
mov dword [eax + 8], ecx
jmp 0x40e873
mov ecx, dword [esi + 8]
mov dword [eax + 4], ecx
jmp 0x40e809
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 0x40e835
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
mov eax, dword [esi + 0x14]
jne 0x40e82e
mov edx, dword [esi + 8]
mov eax, edx
mov edx, dword [edx]
cmp byte [edx + 0xd], 0
je 0x40e824
mov dword [ecx], eax
mov edx, dword [esi + 4]
mov ecx, dword [edx]
mov eax, dword [esi + 0xc]
cmp dword [ecx + 8], eax
je 0x40e842
mov eax, dword [esi + 0xc]
jmp 0x40e890
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
mov edx, dword [esi + 0x14]
jne 0x40e85c
mov eax, dword [esi + 8]
mov edx, eax
mov eax, dword [eax + 8]
cmp byte [eax + 0xd], 0
je 0x40e851
mov dword [ecx + 8], edx
mov eax, dword [esi + 0xc]
jmp 0x40e88d
mov edx, dword [esi + 8]
jmp 0x40e77b
mov dword [eax + 4], ecx
jmp 0x40e873
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 0x40eb07
mov eax, dword [edx]
mov edi, dword [esi + 8]
cmp edi, dword [eax + 4]
je 0x40eb00
mov ecx, dword [esi + 0x14]
cmp byte [edi + 0xc], 1
jne 0x40eb00
mov edx, dword [ecx]
mov dword [esi + 8], edi
cmp edi, edx
mov edi, ecx
je 0x40e901
cmp byte [edx + 0xc], 0
jne 0x40e953
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 0x40e8e5
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 0x40e941
mov eax, dword [ecx + 4]
cmp dword [eax + 8], ecx
je 0x40e946
mov dword [eax], edx
jmp 0x40e949
mov edx, dword [ecx + 8]
cmp byte [edx + 0xc], 0
jne 0x40e984
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 0x40e925
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 0x40e973
mov eax, dword [ecx + 4]
cmp dword [eax], ecx
je 0x40e978
mov dword [eax + 8], edx
jmp 0x40e97a
mov dword [eax + 4], edx
jmp 0x40e949
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 0x40e9a6
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cmp byte [eax + 0xc], 1
mov cl, byte [ecx + 0xc]
jne 0x40e9bc
cmp cl, 1
mov ecx, edi
je 0x40e9a2
jmp 0x40ea4b
mov dword [eax + 4], edx
jmp 0x40e97a
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 0x40e9a6
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cmp byte [ecx + 0xc], 1
mov al, byte [eax + 0xc]
jne 0x40e9f8
cmp al, 1
mov ecx, edi
jne 0x40eaac
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 0x40e8ab
jmp 0x40eb00
cmp cl, 1
jne 0x40ea33
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 0x40e9dc
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 0x40ea3b
mov eax, dword [edx + 4]
cmp dword [eax], edx
je 0x40ea40
mov dword [eax + 8], ecx
jmp 0x40ea42
cmp al, 1
jne 0x40ea37
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 0x40ea17
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 0x40ea99
mov eax, dword [edx + 4]
cmp dword [eax + 8], edx
je 0x40ea9e
mov dword [eax], ecx
jmp 0x40eaa1
mov ecx, edi
jmp 0x40ea4b
mov ecx, edi
jmp 0x40eaac
mov dword [eax + 4], ecx
jmp 0x40ea42
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 0x40ea70
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 0x40ea8c
mov eax, dword [ecx + 4]
cmp dword [eax + 8], ecx
je 0x40ea91
mov dword [eax], edx
jmp 0x40ea94
mov dword [eax + 4], edx
jmp 0x40ea94
mov dword [eax + 8], edx
mov dword [edx + 8], edi
jmp 0x40eaf7
mov dword [eax + 4], ecx
jmp 0x40eaa1
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 0x40ead2
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 0x40eaee
mov eax, dword [ecx + 4]
cmp dword [eax], ecx
je 0x40eaf3
mov dword [eax + 8], edx
jmp 0x40eaf5
mov dword [eax + 4], edx
jmp 0x40eaf5
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 0x40eb12
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 0x40e702
jmp 0x40ed9e
mov dword [edi + 8], eax
cmp dword [edx + 8], edi
jne 0x40eb3e
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 0x40ecea
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 0x40eb78
cmp byte [ecx + 0xc], 0
je 0x40eb92
cmp edi, dword [edx]
je 0x40ebaf
mov eax, edx
mov edx, edi
mov ebx, dword [esi + 4]
jmp 0x40ec26
mov ecx, dword [ebx + 8]
cmp byte [ecx + 0xc], 0
je 0x40eb92
cmp edi, dword [edx + 8]
je 0x40ebe3
mov eax, edx
mov edx, edi
mov ebx, dword [esi + 4]
jmp 0x40ec83
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 0x40ecd5
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 0x40ebc9
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 0x40ec16
mov eax, dword [edx + 4]
cmp dword [eax + 8], edx
je 0x40ec1b
mov dword [eax], edi
jmp 0x40ec1e
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 0x40ebfc
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 0x40ec75
mov eax, dword [edx + 4]
cmp dword [eax], edx
je 0x40ec7a
mov dword [eax + 8], edi
jmp 0x40ec7c
mov dword [eax + 4], edi
jmp 0x40ec1e
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 0x40ec4d
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 0x40ec6a
mov edi, dword [eax + 4]
cmp dword [edi], eax
je 0x40ec6f
mov dword [edi + 8], ecx
jmp 0x40ec71
mov dword [edi + 4], ecx
jmp 0x40ec71
mov dword [edi], ecx
mov dword [ecx], eax
jmp 0x40ecd2
mov dword [eax + 4], edi
jmp 0x40ec7c
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 0x40ecaa
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 0x40ecc7
mov edi, dword [eax + 4]
cmp dword [edi + 8], eax
je 0x40eccc
mov dword [edi], ecx
jmp 0x40eccf
mov dword [edi + 4], ecx
jmp 0x40eccf
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 0x40eb53
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 0x40ed31
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 0x40ed55
mov ecx, ebx
mov edx, dword [esi + 0x1c]
cmp eax, 0x10
mov eax, dword [esi + 4]
jb 0x40ed41
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 0x40ef08
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 0x40ef59
mov ecx, dword [esi + 0x24]
cmp byte [ecx + 0xd], 0
je 0x40e702
mov ecx, dword [ebx + 4]
call fcn.0042e8f0
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 0x40ede2
mov ecx, edi
mov eax, ecx
mov ecx, dword [ecx]
cmp ecx, edi
jne 0x40edce
mov ecx, edx
add ecx, 0xc
mov dword [eax], ecx
mov dword [edx + 0xc], edi
jmp 0x40edea
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 0x40ee0f
mov dword [esi + 8], 0
mov ebx, edi
mov edi, dword [esi + 0x1c]
jmp 0x40ee41
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 0x40ee0f
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 0x40ee52
cmp edi, dword [eax + 0x10]
mov ecx, dword [esi + 0x10]
sbb ecx, dword [eax + 0x14]
jae 0x40ee9f
mov edi, dword [esi + 0x18]
cmp dword [edi + 4], 0x7ffffff
je 0x40efbf
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.00431a20
add esp, 8
mov eax, dword [esi + 0x4c]
lea edi, [esi + 0x4c]
cmp eax, edi
je 0x40eeba
mov edx, eax
mov ebx, dword [esi + 0x30]
mov ecx, edx
mov edx, dword [edx]
cmp edx, edi
jne 0x40eeae
mov dword [ecx], eax
jmp 0x40ef08
mov edi, dword [esi + 0x48]
test edi, edi
mov ebx, dword [esi + 0x30]
je 0x40ef08
mov eax, dword [edi + 0x38]
cmp eax, 0x10
jb 0x40eeff
mov ecx, dword [edi + 0x24]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x40eef2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x40efc9
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.0043f980
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 0x40ef1f
jmp 0x40e427
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.00431c10
add esp, 0xc
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x40ed55
mov ecx, dword [esi + 0x60]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x40efb0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x40efc9
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 0x40ed55
call fcn.00441b70
call fcn.00441590
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3