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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x2d0
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov esi, dword [ebp + 8]
mov eax, dword [0x1007a00c]
xor eax, ebp
mov dword [esp + 0x2c8], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x8c]
mov dword [ecx - 8], eax
mov dword [ecx - 4], 0x14
mov dword [ecx - 0xc], ecx
xor edx, edx
mov dword [esp + 0x10], esi
mov ecx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, 0x25
je 0x100202f0
add ecx, 1
test bl, bl
jne 0x100202e0
jmp 0x1002033a
mov bl, byte [ecx + 1]
add ecx, 2
cmp bl, 0x25
je 0x100202e0
test bl, bl
je 0x100202e0
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jae 0x1002030e
mov bl, byte [ecx]
inc ecx
jmp 0x100202fb
cmp bl, 0x24
je 0x10020f68
mov edx, 1
test eax, eax
mov eax, 0
je 0x100202e0
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
test eax, eax
jne 0x1002103b
lea eax, [esp + 0x192]
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x10]
nop word cs:[eax + eax]
nop dword [eax + eax]
lea eax, [esi + 1]
mov dword [esp + 8], eax
mov ebx, esi
mov al, byte [esi]
cmp al, 0x25
je 0x100203a0
test al, al
je 0x10020805
mov esi, dword [esp + 0x14]
add dword [esi + 4], 1
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
push ebx
call edi
mov esi, dword [esp + 8]
test al, al
jne 0x10020360
jmp 0x10020ddd
mov eax, ebx
lea esi, [ebx + 2]
mov al, byte [ebx + 1]
cmp al, 0x25
je 0x10020682
cmp dword [esp + 0x84], 0
jne 0x10020ed1
mov dword [esp + 8], 0
mov dword [esp + 0x10], esi
mov ebx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov ecx, eax
add cl, 0xe0
cmp cl, 0x10
ja 0x10020430
movzx ecx, cl
mov edx, 0x12801
bt edx, ecx
jae 0x10020430
xor ecx, ecx
cmp al, 0x2d
sete cl
mov edx, dword [esp + 8]
or edx, ecx
mov ecx, edx
or ecx, 2
cmp al, 0x2b
cmovne ecx, edx
mov edx, ecx
or edx, 4
cmp al, 0x20
cmovne edx, ecx
mov ecx, edx
or ecx, 8
cmp al, 0x30
cmovne ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x100203d0
mov ecx, dword [esp + 8]
and ecx, 2
jne 0x10020e5f
mov ecx, dword [esp + 8]
and ecx, 1
jne 0x10020ef2
cmp al, 0x2a
je 0x10020efc
mov ecx, eax
add cl, 0xd0
xor edx, edx
cmp cl, 9
jbe 0x10020706
mov esi, 0xffffffff
cmp al, 0x2e
je 0x10020637
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], 2
mov cl, 1
mov edx, eax
add dl, 0xb7
cmp dl, 0x31
ja case.0x1002048e.182
movzx edx, dl
jmp dword [edx*4 + 0x1006b7c4]
movsx esi, al
lea edx, [esi - 0x45]
cmp edx, 0x33
ja case.0x100204b6.72
mov edi, 0x10
mov dword [esp + 0x30], str.0123456789abcdef
mov eax, 0xa
jmp dword [edx*4 + 0x1006b88c]
or dword [esp + 0x20], 1
mov dword [esp + 0x30], 0x1006b6fc
mov eax, 0x10
mov edi, eax
mov edx, dword [esp + 0x20]
cmp edx, 3
jne 0x10020837
mov esi, dword [esp + 0xc]
mov ecx, dword [esi]
mov dword [esp + 0x40], ecx
add esi, 4
mov eax, ecx
or eax, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
je 0x10020fb2
test ecx, ecx
je 0x100206a5
xor ebx, ebx
mov esi, dword [esp + 0x30]
mov eax, ecx
xor edx, edx
div edi
and edx, 0xf
movzx edx, byte [esi + edx]
mov byte [esp + ebx + 0x191], dl
add ebx, 0xffffffff
cmp ecx, edi
mov ecx, eax
jae 0x10020509
mov eax, dword [esp + 0x38]
lea esi, [eax + ebx]
neg ebx
mov edx, dword [esp + 0x20]
xor eax, eax
mov cl, 1
mov dword [esp + 0x30], ecx
test dl, 1
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x34], esi
jne 0x10020567
mov ecx, dword [esp + 8]
test cl, 0x10
jne 0x10020cd0
test cl, 2
jne 0x10020e79
test cl, 4
jne 0x10021362
test edi, edi
setg dl
mov esi, edi
sub esi, ebx
setg dh
mov ecx, edi
test dl, dh
jne 0x1002057d
xor esi, esi
mov ecx, ebx
add eax, ecx
xor ecx, ecx
test byte [esp + 8], 8
jne 0x100207da
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 8]
and edx, 1
sub edi, eax
cmovle edi, ecx
test edx, edx
jne 0x10020fca
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
add edi, 1
add edi, 0xffffffff
test edi, edi
jg 0x10020fd5
cmp byte [esp + 0x30], 0
je 0x10020c9c
add esi, 1
add esi, 0xffffffff
test esi, esi
jg 0x10020dae
add eax, 1
add eax, 0xffffffff
test eax, eax
jg 0x10020901
mov esi, dword [esp + 0x14]
add dword [esi + 4], ebx
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
push dword [esp + 0x38]
call edi
test al, al
je 0x10020ddd
mov ecx, dword [esp + 0x18]
add ecx, 1
add ecx, 0xffffffff
test ecx, ecx
jg 0x1002100b
mov esi, dword [esp + 0x10]
jmp 0x10020360
or dword [esp + 0x20], 1
jmp case.0x100204b6.100
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
cmp al, 0x2a
je 0x1002136c
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, eax
add cl, 0xd0
xor esi, esi
cmp cl, 9
ja 0x1002046f
xor esi, esi
movzx eax, al
lea ecx, [esi + esi*4]
lea esi, [eax + ecx*2]
add esi, 0xffffffd0
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
jb 0x1002065c
jmp 0x1002046f
mov edi, dword [esp + 0x14]
inc dword [edi + 4]
mov eax, dword [edi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 1
push dword [esp + 0xc]
call ebx
jmp 0x10020397
mov byte [esp + 0x191], 0x30
lea eax, [esp + 0x191]
mov esi, eax
xor ebx, ebx
inc ebx
jmp 0x10020533
mov dword [esp + 0x20], edx
push 0
push edi
push edx
push ebx
call fcn.1002d8e0
mov dword [esp + 0xc], edx
mov ecx, eax
mov edx, eax
imul ecx, edi
mov eax, edi
mov edi, ebx
sub ebx, ecx
and ebx, 0xf
mov ecx, dword [esp + 0x30]
mov cl, byte [ecx + ebx]
mov ebx, dword [esp + 0x38]
mov byte [ebx + esi - 1], cl
dec esi
cmp edi, eax
mov edi, eax
sbb dword [esp + 0x20], 0
mov ebx, edx
mov edx, dword [esp + 0xc]
jae 0x100206be
jmp 0x100209af
xor edx, edx
movzx eax, al
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*2]
add edx, 0xffffffd0
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, eax
add cl, 0xd0
cmp cl, 0xa
jae 0x10020462
jmp 0x10020708
or dword [esp + 0x20], 1
jmp 0x100204ca
test cl, cl
je case.0x100204b6.83
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], esi
cmp dword [esp + 0x1c], 0
je case.0x10020844.3
test esi, esi
mov eax, str._null_
cmove esi, eax
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov ebx, eax
cmovg ebx, ecx
test ecx, ecx
cmovle ebx, eax
mov byte [esp + 0x12e], 0x20
mov eax, dword [esp + 0x18]
sub eax, ebx
test byte [esp + 8], 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], eax
je 0x10020866
mov esi, dword [esp + 0x14]
add dword [esi + 4], ebx
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push ebx
push dword [esp + 0x24]
call edi
test al, al
je 0x10020ddd
test byte [esp + 8], 1
mov ebx, dword [esp + 0x1c]
jne 0x100208c0
jmp case.0x10020844.3
test edi, edi
sets dl
mov edi, dword [esp + 0x18]
mov ecx, edi
sub ecx, eax
setg dh
test dl, dh
mov edx, 0
cmove ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, 0
cmovne eax, edi
jmp 0x10020598
mov bl, 1
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x8c]
cmp eax, ecx
jne 0x100212bb
mov ecx, dword [esp + 0x2c8]
xor ecx, ebp
call fcn.1002cad0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
cmp edx, 0xf
ja case.0x10020844.3
mov eax, dword [esp + 0x20]
jmp dword [eax*4 + 0x1006b95c]
mov esi, dword [esp + 0xc]
mov ecx, dword [esi]
mov dword [esp + 0x40], ecx
test ecx, ecx
js 0x10020e69
mov edx, dword [esp + 0x20]
jmp 0x100204e8
test eax, eax
jle 0x100207a1
test byte [esp + 8], 8
je 0x1002087d
mov byte [esp + 0x12e], 0x30
mov esi, dword [esp + 0x18]
sub esi, ebx
inc esi
mov eax, esi
dec eax
test eax, eax
jle 0x100213f6
mov esi, eax
mov edi, dword [esp + 0x14]
inc dword [edi + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
call dword [section..00cfg]
lea eax, [esp + 0x12e]
mov ecx, edi
push 1
push eax
call dword [esp + 0x20]
test al, al
jne 0x10020884
jmp 0x10020ddd
test ebx, ebx
jle case.0x10020844.3
inc ebx
mov eax, ebx
dec eax
test eax, eax
jle case.0x10020844.3
mov ebx, eax
mov esi, dword [esp + 0x14]
inc dword [esi + 4]
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
lea eax, [esp + 0x12e]
mov ecx, esi
push 1
push eax
call edi
test al, al
jne 0x100208c9
jmp 0x10020ddd
mov esi, dword [esp + 0x14]
inc dword [esi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
push 0x1006e266
call edi
test al, al
mov eax, dword [esp + 0x20]
jne 0x100205e2
jmp 0x10020ddd
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
cmp al, 0x6c
jne 0x10020e1f
mov al, byte [ecx + 1]
add ecx, 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 6
xor ecx, ecx
jmp case.0x1002048e.182
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
mov esi, dword [eax + 4]
add eax, 8
mov edx, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], ecx
mov ebx, 7
mov ecx, eax
cmp dword [esp + 0x1c], 0
jne 0x10020990
mov eax, dword [esp + 0x20]
or eax, edx
je 0x10021402
mov eax, dword [esp + 0x20]
or eax, edx
je 0x10020ae7
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ecx
xor esi, esi
mov ebx, dword [esp + 0x20]
jmp 0x100206be
mov edx, dword [esp + 0x38]
add edx, esi
neg esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
push dword [esp + 8]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
push esi
call fcn.10005f80
add esp, 0x14
test al, al
jne case.0x10020844.3
jmp 0x10020ddd
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], eax
sub esp, 0x20
xor edi, edi
mov dword [esp + 0x1c], edi
movaps xmm0, xmmword [0x1006b6c0]
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], edi
call ebx
test eax, eax
je 0x10021421
mov dword [esp + 0x20], eax
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov esi, eax
push edi
push edi
push dword [esp + 0x28]
push eax
push 0xffffffffffffffff
push dword [esp + 0x54]
push edi
push edi
call ebx
mov eax, dword [esp + 0x20]
mov byte [eax + esi - 1], 0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x10020ad4
mov dword [esp + 0x20], esi
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, edi
mov ecx, edi
mov edi, eax
cmovg edi, ecx
test ecx, ecx
cmovle edi, eax
mov byte [esp + 0x12e], 0x20
mov eax, dword [esp + 0x18]
sub eax, edi
test byte [esp + 8], 1
mov dword [esp + 0x1c], eax
jne 0x10020a93
test eax, eax
jg 0x1002147c
mov esi, dword [esp + 0x14]
add dword [esi + 4], edi
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
push edi
mov esi, dword [esp + 0x24]
push esi
call ebx
test al, al
je 0x100214cd
test byte [esp + 8], 1
mov edi, dword [esp + 0x1c]
je 0x10020acc
test edi, edi
jg 0x100214f0
test esi, esi
je case.0x10020844.3
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov esi, dword [esp + 0x10]
jmp 0x10020360
mov dword [esp + 0xc], ecx
mov byte [esp + 0x191], 0x30
xor esi, esi
inc esi
lea edx, [esp + 0x191]
jmp 0x100209c3
mov eax, dword [esp + 0xc]
movsd xmm0, qword [eax]
movaps xmmword [esp + 0x20], xmm0
add eax, 8
mov dword [esp + 0xc], eax
movsd qword [esp + 0x40], xmm0
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
add esp, 4
test eax, eax
setne al
mov ecx, 0x1006dfde
mov edx, 0x1006d8b4
cmove edx, ecx
mov ecx, 0x1006dee4
mov edi, 0x1006cf30
cmove edi, ecx
shl al, 5
or al, 0x45
mov dword [esp + 0x54], 0x19
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edi
mov byte [esp + 0x60], al
movaps xmm0, xmmword [0x1006aef0]
movups xmmword [esp + 0x64], xmm0
mov dword [esp + 0x74], 2
lea eax, [esp + 0x12e]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x19a
mov dword [esp + 0x50], 0
sub esp, 8
movaps xmm0, xmmword [esp + 0x28]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__dsign]
add esp, 8
mov ebx, dword [esp + 8]
or ebx, 0x10
test eax, eax
je 0x10020bbc
movaps xmm0, xmmword [esp + 0x20]
andps xmm0, xmmword [0x1006b6d0]
jmp 0x10020bc1
movaps xmm0, xmmword [esp + 0x20]
movaps xmmword [esp + 0x20], xmm0
cmove ebx, dword [esp + 8]
lea eax, [esp + 0x78]
movsd qword [eax], xmm0
push eax
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll__dtest]
add esp, 4
mov edi, ebx
and edi, 0xfffffff7
test ax, ax
cmovle edi, ebx
mov eax, dword [esp + 0x1c]
test eax, eax
mov ebx, 6
cmovns ebx, eax
cmp esi, 0x67
jne 0x10020de4
xor eax, eax
inc eax
test ebx, ebx
cmovne eax, ebx
sub esp, 0x10
lea ecx, [esp + 0x58]
mov dword [esp + 0xc], ecx
movaps xmm0, xmmword [esp + 0x30]
movsd qword [esp], xmm0
mov dword [esp + 8], eax
lea ecx, [esp + 0x64]
call sym.mozglue.dll_public:_bool___thiscall_double_conversion::DoubleToStringConverter::ToPrecision_double__int__class_double_conversion::StringBuilder__const
test al, al
je 0x10021468
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
mov byte [eax + esi], 0
mov dword [esp + 0x50], 0xffffffff
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
push edi
push 8
push ebx
push dword [esp + 0x24]
push esi
call fcn.10005f80
add esp, 0x14
mov ecx, dword [esp + 0x50]
test ecx, ecx
jns 0x1002146f
test al, al
jne case.0x10020844.3
jmp 0x10020ddd
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
add ecx, 4
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov ebx, 0xb
jmp 0x1002097d
mov edi, dword [esp + 0x14]
inc dword [edi + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
call dword [section..00cfg]
lea eax, [esp + 0x54]
mov ecx, edi
push 1
push eax
call dword [esp + 0x10]
test al, al
mov eax, dword [esp + 0x20]
jne 0x100205d1
jmp 0x10020ddd
mov byte [esp + 0x54], 0x2d
xor eax, eax
inc eax
mov dword [esp + 0x30], 0
jmp 0x10020567
test byte [esp + 8], 1
jne 0x10021543
xor esi, esi
inc esi
mov ecx, dword [esp + 0x18]
test ecx, ecx
cmovle esi, ecx
dec esi
inc ecx
dec ecx
cmp ecx, 2
mov eax, dword [esp + 0x20]
jge 0x10021550
mov dword [esp + 0x18], esi
cmp eax, 2
mov esi, dword [esp + 0xc]
jne 0x10021586
mov al, byte [esi]
lea ecx, [esp + 0x40]
mov byte [ecx], al
mov ebx, dword [esp + 0x14]
inc dword [ebx + 4]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
push 1
lea eax, [esp + 0x44]
push eax
call edi
test al, al
je 0x10020ddd
add esi, 4
mov dword [esp + 0xc], esi
test byte [esp + 8], 1
je case.0x10020844.3
mov eax, dword [esp + 0x18]
inc eax
dec eax
cmp eax, 2
jl case.0x10020844.3
mov ebx, eax
mov esi, dword [esp + 0x14]
inc dword [esi + 4]
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
push 0x1006ffa1
call edi
test al, al
mov eax, ebx
mov ebx, 0
jne 0x10020d63
jmp 0x10020807
mov edx, dword [esp + 0x10]
mov al, byte [edx]
inc edx
mov dword [esp + 0x10], edx
jmp case.0x1002048e.182
mov edi, dword [esp + 0x14]
inc dword [edi + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
call dword [section..00cfg]
mov ecx, edi
push 1
push 0x1006e266
call dword [esp + 0x10]
test al, al
mov eax, dword [esp + 0x20]
jne 0x100205d4
xor ebx, ebx
jmp 0x10020807
movaps xmm0, xmmword [esp + 0x20]
xor eax, eax
cmp esi, 0x64
jle 0x100215a8
cmp esi, 0x66
jne 0x100215c4
sub esp, 0x10
lea eax, [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
movsd qword [esp], xmm0
lea ecx, [esp + 0x64]
call sym.mozglue.dll_public:_bool___thiscall_double_conversion::DoubleToStringConverter::ToFixed_double__int__class_double_conversion::StringBuilder__const
jmp 0x10020c29
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 4
jmp 0x10020955
mov eax, dword [esp + 0xc]
lea esi, [eax + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], ecx
mov ebx, 6
mov edx, eax
test eax, eax
js 0x10021604
mov ecx, esi
jmp 0x1002097d
and dword [esp + 8], 0xfffffffb
jmp 0x1002043d
neg ecx
mov dword [esp + 0x40], ecx
or dword [esp + 8], 0x10
jmp 0x1002085d
mov byte [esp + 0x54], 0x2b
jmp 0x10020cd5
mov esi, dword [esp + 0x14]
inc dword [esi + 4]
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
push 0x1006ff6b
call edi
test al, al
je 0x10020ddd
mov ebx, dword [esp + 0x14]
inc dword [ebx + 4]
mov eax, dword [esp + 0x10]
lea esi, [eax - 1]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
push 1
push esi
call edi
jmp 0x100209dd
add ebx, 3
xor ecx, ecx
mov esi, ebx
test al, al
je 0x10020f35
cmp al, 0x24
je 0x10020f35
movsx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
mov al, byte [esi - 1]
inc esi
jmp 0x10020ed8
and dword [esp + 8], 0xfffffff7
jmp 0x1002044a
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 0xc], ecx
mov edx, esi
test esi, esi
jns 0x10020f2a
neg edx
mov ecx, dword [esp + 8]
and ecx, 0xfffffff6
or ecx, 1
mov dword [esp + 8], ecx
mov ebx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
jmp 0x10020462
mov eax, dword [esp + 0x80]
cmp dword [eax + ecx*8 - 8], 0x14
je 0x10020f53
mov eax, dword [eax + ecx*8 - 4]
mov dword [esp + 0xc], eax
mov al, byte [esi - 1]
jmp 0x100203be
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
test edx, edx
jne 0x100212ca
inc eax
xor edx, edx
jmp 0x100202e0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0xc], ecx
mov dword [esp + 0x40], eax
test eax, eax
je case.0x10020844.3
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov dword [eax], ecx
mov esi, dword [esp + 0x10]
jmp 0x10020360
or dword [esp + 0x20], 1
mov eax, 8
jmp case.0x100204b6.100
xor esi, esi
mov ecx, dword [esp + 0x14]
mov eax, edx
mov edx, 0x10071325
push dword [esp + 8]
push eax
push esi
jmp 0x100209d0
mov dword [esp + 0x18], edi
xor edi, edi
jmp 0x100205b4
mov eax, dword [esp + 0x14]
inc dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
call dword [section..00cfg]
mov ecx, dword [esp + 0x14]
push 1
push 0x1006ffa1
call dword [esp + 0x10]
test al, al
mov eax, dword [esp + 0x20]
jne 0x100205bb
jmp 0x10020ddd
mov esi, dword [esp + 0x14]
inc dword [esi + 4]
mov eax, dword [esi]
mov ebx, ecx
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
push 0x1006ffa1
call edi
mov ecx, ebx
test al, al
jne 0x10020619
jmp 0x10020ddd
cmp eax, 0x15
jae 0x10021593
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], 0x14
cmp eax, 1
je 0x10021083
mov dword [esp + 0x94], 0x14
cmp eax, 2
je 0x10021083
mov ecx, 2
mov edx, dword [esp + 0x80]
mov dword [edx + ecx*8], 0x14
inc ecx
cmp eax, ecx
jne 0x10021070
mov edi, dword [ebp + 8]
mov edx, edi
mov cl, byte [edi]
cmp cl, 0x25
je 0x1002109b
inc edx
mov edi, edx
test cl, cl
jne 0x10021086
jmp 0x100212df
lea edi, [edx + 2]
mov bl, byte [edx + 1]
cmp bl, 0x25
je 0x10021086
add edx, 3
xor ecx, ecx
test bl, bl
je 0x100210c6
cmp bl, 0x24
je 0x100210c6
movsx esi, bl
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*2]
add ecx, 0xffffffd0
mov bl, byte [edi]
inc edi
inc edx
jmp 0x100210ab
lea esi, [ecx - 1]
cmp esi, eax
jae 0x10021647
test bl, bl
je 0x10021647
mov esi, dword [esp + 0x80]
cmp dword [esi + ecx*8 - 8], 0x14
jne 0x10021086
mov bl, byte [edx - 1]
mov bh, bl
add bh, 0xd6
cmp bh, 6
ja case.default.0x100210f7
movzx edi, bh
jmp dword [edi*4 + 0x1006b750]
inc edx
jmp 0x100210e7
cmp bl, 0x20
je case.0x100210f7.213
mov bh, bl
add bh, 0xd0
cmp bh, 9
ja 0x1002111d
mov bl, byte [edx]
inc edx
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10021110
cmp bl, 0x2e
jne 0x10021145
mov bl, byte [edx]
cmp bl, 0x2a
je 0x10021671
inc edx
mov bh, bl
add bh, 0xd0
cmp bh, 9
ja 0x10021145
mov bl, byte [edx]
inc edx
mov bh, bl
add bh, 0xd0
cmp bh, 0xa
jb 0x10021138
mov dword [esi + ecx*8 - 8], 2
cmp bl, 0x69
jle 0x10021190
cmp bl, 0x73
jg 0x100211d0
cmp bl, 0x6a
je 0x10021241
cmp bl, 0x6c
jne 0x100211ec
mov esi, dword [esp + 0x80]
mov dword [esi + ecx*8 - 8], 4
mov bl, byte [edx]
cmp bl, 0x6c
jne 0x100211eb
mov esi, dword [esp + 0x80]
mov dword [esi + ecx*8 - 8], 6
jmp 0x100211c8
cmp bl, 0x49
je 0x100211da
cmp bl, 0x4c
je 0x10021241
cmp bl, 0x68
jne 0x100211ec
mov esi, dword [esp + 0x80]
mov dword [esi + ecx*8 - 8], 0
mov bl, byte [edx]
cmp bl, 0x68
jne 0x100211eb
mov esi, dword [esp + 0x80]
mov dword [esi + ecx*8 - 8], 0xe
mov bl, byte [edx + 1]
add edx, 2
jmp 0x100211ec
cmp bl, 0x74
je 0x100211da
cmp bl, 0x7a
jne 0x100211ec
mov esi, dword [esp + 0x80]
mov dword [esi + ecx*8 - 8], 2
mov bl, byte [edx]
inc edx
mov edi, edx
movsx edx, bl
cmp edx, 0x62
jle 0x10021213
add edx, 0xffffff9d
cmp edx, 0x15
ja case.0x100211fe.104
jmp dword [edx*4 + 0x1006b76c]
mov edx, dword [esp + 0x80]
or dword [edx + ecx*8 - 8], 1
jmp case.0x100211fe.99
lea esi, [edx - 0x45]
cmp esi, 3
jae 0x10021252
mov edx, dword [esp + 0x80]
mov dword [edx + ecx*8 - 8], 8
mov edx, dword [esp + 0x80]
cmp dword [edx + ecx*8 - 8], 0x14
jne 0x10021086
jmp 0x1002165c
mov esi, dword [esp + 0x80]
mov dword [esi + ecx*8 - 8], 6
jmp 0x100211e9
cmp edx, 0x53
je 0x100212a7
cmp edx, 0x58
je case.0x100211fe.111
mov edx, dword [esp + 0x80]
mov dword [edx + ecx*8 - 8], 0x14
jmp case.0x100211fe.99
mov edx, dword [esp + 0x80]
mov dword [edx + ecx*8 - 8], 0xa
jmp case.0x100211fe.99
mov edx, dword [esp + 0x80]
mov dword [edx + ecx*8 - 8], 0xb
jmp case.0x100211fe.99
mov edx, dword [esp + 0x80]
cmp dword [edx + ecx*8 - 8], 4
je 0x100212ae
mov dword [edx + ecx*8 - 8], 9
jmp case.0x100211fe.99
mov edx, dword [esp + 0x80]
mov dword [edx + ecx*8 - 8], 0xc
jmp case.0x100211fe.99
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x1002081d
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
xor ecx, ecx
inc ecx
test eax, eax
cmovne ecx, eax
xor eax, eax
mov esi, dword [esp + 0x80]
mov edx, 0xdfff
mov edi, dword [ebp + 0xc]
mov dword [esi + eax*8 + 4], edi
mov esi, dword [esp + 0x80]
mov ebx, dword [esi + eax*8]
cmp ebx, 0x10
jae 0x10021632
bt edx, ebx
jae 0x10021632
add edi, dword [ebx*4 + 0x1006b710]
inc eax
cmp ecx, eax
jne 0x100212f8
jmp 0x10020342
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x68
jne 0x10021388
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 1]
add ecx, 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 0xe
xor ecx, ecx
mov ebx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
jmp case.0x1002048e.182
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
jmp 0x10020949
mov byte [esp + 0x54], 0x20
jmp 0x10020cd5
mov al, byte [ecx + 1]
add ecx, 2
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 0xc], ecx
jmp 0x1002046f
inc dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x20], 0
mov ebx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
jmp case.0x1002048e.182
mov esi, dword [esp + 0xc]
mov ecx, dword [esi]
mov dword [esp + 0x40], ecx
jmp 0x1002085d
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movsx ecx, ax
shl eax, 0x10
jmp 0x100213d3
mov esi, dword [esp + 0xc]
movzx ecx, word [esi]
jmp 0x100213a7
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movsx ecx, al
shl eax, 0x18
mov dword [esp + 0x40], ecx
jns 0x100213e4
neg ecx
mov dword [esp + 0x40], ecx
or dword [esp + 8], 0x10
mov esi, dword [esp + 0xc]
jmp 0x1002085d
mov esi, dword [esp + 0xc]
movzx ecx, byte [esi]
jmp 0x100213a7
xor eax, eax
dec eax
mov dword [esp + 0x1c], eax
jmp 0x100207a1
mov dword [esp + 0xc], ecx
xor eax, eax
mov ecx, dword [esp + 0x14]
mov edx, 0x10071325
push dword [esp + 8]
push ebx
push eax
push dword [esp + 0x24]
push eax
jmp 0x100209d5
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x459
jne 0x10021527
cmp dword [esp + 0x1c], 0
je case.0x10020844.3
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 1]
cmp eax, 0x19
mov edx, 0x1a
cmovb edx, ecx
mov ecx, dword [esp + 0x14]
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.10055730
add esp, 8
jmp 0x100209dd
xor eax, eax
jmp 0x10020c5e
mov edx, dword [esp + 0x48]
mov byte [edx + ecx], 0
jmp 0x10020c6a
test byte [esp + 8], 8
je 0x1002148b
mov byte [esp + 0x12e], 0x30
mov eax, dword [esp + 0x18]
sub eax, edi
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp + 0x18], eax
test eax, eax
jle 0x10021537
mov ebx, dword [esp + 0x14]
inc dword [ebx + 4]
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [section..00cfg]
lea eax, [esp + 0x12e]
mov ecx, ebx
push 1
push eax
call esi
test al, al
jne 0x10021496
xor ebx, ebx
cmp dword [esp + 0x20], 0
je 0x100214e3
push dword [esp + 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
test bl, bl
jne case.0x10020844.3
jmp 0x10020ddd
inc edi
mov eax, edi
dec eax
mov edi, eax
test eax, eax
jle 0x10021520
mov esi, dword [esp + 0x14]
inc dword [esi + 4]
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esp + 0x12e]
mov ecx, esi
push 1
push eax
call ebx
test al, al
jne 0x100214f1
test edi, edi
setle bl
jmp 0x100214cf
xor eax, eax
inc eax
xor edi, edi
mov ebx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
jmp 0x10020a25
xor eax, eax
dec eax
mov dword [esp + 0x1c], eax
jmp 0x10020a93
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
jmp 0x10020d0c
mov ebx, dword [esp + 0x14]
inc dword [ebx + 4]
mov eax, dword [ebx]
mov dword [esp + 0x18], ecx
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
push 1
push 0x1006ffa1
call edi
mov ecx, dword [esp + 0x18]
xor ebx, ebx
test al, al
jne 0x10020cfe
jmp 0x10020807
test eax, eax
je 0x10020d1d
jmp 0x10020d53
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_number___20_
int3
cmp esi, 0x45
je 0x100215cd
cmp esi, 0x46
je 0x10020dfd
cmp esi, 0x47
je 0x10020bff
jmp 0x10020c5e
cmp esi, 0x65
jne 0x10020c5e
sub esp, 0x10
lea eax, [esp + 0x58]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
movsd qword [esp], xmm0
lea ecx, [esp + 0x64]
call sym.mozglue.dll_public:_bool___thiscall_double_conversion::DoubleToStringConverter::ToExponential_double__int__class_double_conversion::StringBuilder__const
jmp 0x10020c29
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
mov dword [esp + 0x3c], esi
xor eax, eax
mov ecx, dword [esp + 0x20]
neg ecx
sbb eax, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
or dword [esp + 8], 0x10
mov dword [esp + 0x34], 6
mov edx, eax
jmp 0x100209a4
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH__
int3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3