Function at 0x1003ffb0
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 + 0xc], ecx
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [0x100a500c]
xor eax, ebp
mov dword [esp + 0x2c8], eax
xor edi, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
lea eax, [esp + 0x8c]
mov dword [eax - 8], edi
mov dword [eax - 4], 0x14
mov dword [eax - 0xc], eax
mov dword [esp + 4], edx
mov dword [esp + 0x12c], edx
xor edx, edx
mov dword [esp + 0x10], ecx
nop word cs:[eax + eax]
movzx esi, byte [ecx]
cmp esi, 0x25
je 0x10040020
inc ecx
test esi, esi
jne 0x10040010
jmp 0x1004005d
movzx ebx, byte [ecx + 1]
add ecx, 2
cmp ebx, 0x25
je 0x10040010
test ebx, ebx
je 0x10040010
mov eax, ebx
add al, 0xc6
cmp al, 0xf5
ja 0x10040054
cmp bl, 0x24
je 0x10040c93
mov edx, 1
test edi, edi
mov edi, 0
je 0x10040010
jmp 0x10040bfe
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x10040030
jmp 0x10040010
test edi, edi
jne 0x10040d48
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test al, al
je 0x10040477
mov ebx, dword [esp + 0x10]
lea ecx, [ebx + 1]
mov dword [esp + 0x10], ecx
cmp al, 0x25
je 0x100400c0
mov esi, dword [esp + 0xc]
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 ebx
call edi
test al, al
je 0x10040a89
mov ebx, dword [esp + 0x10]
movzx eax, byte [ebx]
test al, al
jne 0x10040077
jmp 0x10040477
lea esi, [ebx + 2]
movzx eax, byte [ebx + 1]
cmp al, 0x25
jne 0x100400f0
mov edi, dword [esp + 0xc]
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 + 0x14]
call ebx
mov dword [esp + 0x10], esi
jmp 0x1004009d
cmp dword [esp + 0x84], 0
jne 0x10040c13
xor edx, edx
mov dword [esp + 0x10], esi
movzx ecx, al
add ecx, 0xffffffe0
cmp ecx, 0x10
ja case.0x1004010f.33
jmp dword [ecx*4 + 0x10093dc4]
test dl, 2
jne 0x10040b80
test dl, 1
jne 0x10040b9e
mov dword [esp + 8], edx
cmp al, 0x2a
je 0x10040c3a
mov ecx, eax
add cl, 0xd0
xor edx, edx
cmp cl, 9
jbe 0x100404dd
mov esi, 0xffffffff
cmp al, 0x2e
je 0x1004033b
mov dword [esp], esi
mov dword [esp + 0x14], edx
movzx ecx, al
mov esi, 2
mov dl, 1
mov dword [esp + 0x18], edx
add ecx, 0xffffffb7
cmp ecx, 0x31
ja case.0x10040181.74
mov dword [esp + 0x20], 6
mov edi, 1
xor ebx, ebx
mov edx, dword [esp + 0x10]
jmp dword [ecx*4 + 0x10093e08]
movsx eax, al
lea ecx, [eax - 0x45]
cmp ecx, 0x33
ja case.0x100401ad.72
mov ebx, eax
mov edx, esi
mov edi, 0x10
mov dword [esp + 0x20], str.0123456789abcdef
mov eax, 0xa
jmp dword [ecx*4 + 0x10093ed0]
or edx, 1
jmp case.0x100401ad.100
or edx, 1
mov dword [esp + 0x20], 0x10093cfc
mov eax, 0x10
mov dword [esp + 0x1c], eax
cmp edx, 3
mov dword [esp + 0x18], edx
jne 0x10040506
mov edx, dword [esp + 4]
mov ecx, dword [edx]
mov dword [esp + 0x40], ecx
mov edi, dword [esp]
add edx, 4
mov eax, ecx
or eax, edi
mov dword [esp + 4], edx
je 0x10040ce8
test ecx, ecx
je 0x10040386
xor ebx, ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov eax, ecx
xor edx, edx
div edi
and edx, 0xf
movzx edx, byte [esi + edx]
mov byte [esp + ebx + 0x18f], dl
dec ebx
cmp ecx, edi
mov ecx, eax
jae 0x1004020a
lea eax, [esp + 0x190]
add eax, ebx
mov dword [esp + 0x38], eax
neg ebx
mov edi, dword [esp]
mov dword [esp + 0x20], 0
test byte [esp + 0x18], 1
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 8]
jne 0x10040278
test cl, 0x10
jne 0x1004062a
test cl, 2
jne 0x10040ba6
mov al, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
test cl, 4
je 0x10040286
jmp 0x1004107c
mov al, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
test edi, edi
setg cl
mov eax, edi
sub edi, ebx
setg dl
test cl, dl
mov ecx, 0
cmove edi, ecx
mov ecx, ebx
cmovne ecx, eax
add ecx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
test dl, 8
jne 0x1004059d
and edx, 1
mov eax, edx
neg eax
sub esi, ecx
mov ecx, 0
cmovle esi, ecx
and eax, esi
mov dword [esp + 8], eax
test edx, edx
cmovne esi, ecx
inc esi
mov edx, dword [esp + 0x20]
dec esi
test esi, esi
mov eax, dword [esp + 0x18]
jg 0x10040a59
test al, al
je 0x100405f8
inc edi
dec edi
test edi, edi
jg 0x10040a2a
inc edx
dec edx
test edx, edx
jg 0x100404a9
mov esi, dword [esp + 0xc]
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 + 0x3c]
call edi
test al, al
je 0x10040a89
inc dword [esp + 8]
mov eax, dword [esp + 8]
dec eax
test eax, eax
jg 0x10040d18
mov eax, dword [esp + 0x10]
jmp 0x10040068
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
cmp al, 0x2a
je 0x10041086
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, eax
add cl, 0xd0
xor esi, esi
cmp cl, 9
ja 0x10040151
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 0x10040360
jmp 0x10040151
mov byte [esp + 0x18f], 0x30
lea eax, [esp + 0x18f]
mov dword [esp + 0x38], eax
xor ebx, ebx
inc ebx
jmp 0x10040237
cmp byte [esp + 0x18], 0
je case.0x100401ad.83
mov eax, dword [esp + 4]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 4], eax
mov dword [esp + 0x40], ecx
mov esi, dword [esp]
test esi, esi
je case.0x10040513.3
test ecx, ecx
mov eax, str._null_
cmove ecx, eax
mov dword [esp + 0x20], ecx
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, esi
mov ebx, eax
cmovg ebx, esi
test esi, esi
cmovle ebx, eax
mov byte [esp + 0x12c], 0x20
mov eax, dword [esp + 0x14]
sub eax, ebx
test byte [esp + 8], 1
mov dword [esp], eax
je 0x1004053c
mov esi, dword [esp + 0xc]
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 0x10040a89
test byte [esp + 8], 1
mov ebx, dword [esp]
je case.0x10040513.3
test ebx, ebx
jle case.0x10040513.3
inc ebx
dec ebx
test ebx, ebx
jle case.0x10040513.3
mov esi, dword [esp + 0xc]
inc dword [esi + 4]
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
lea eax, [esp + 0x12c]
mov ecx, esi
push 1
push eax
call edi
test al, al
jne 0x10040443
jmp 0x10040a89
mov bl, 1
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x8c]
cmp eax, ecx
jne 0x10040fad
mov ecx, dword [esp + 0x2c8]
xor ecx, ebp
call fcn.1004fb50
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov edi, dword [esp + 0xc]
inc dword [edi + 4]
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov dword [esp + 0x20], edx
mov ecx, esi
call dword [section..00cfg]
mov ecx, edi
push 1
push 0x10097f56
call esi
mov edx, dword [esp + 0x20]
test al, al
jne 0x100402f3
jmp 0x10040a89
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 0x10040144
jmp 0x100404df
cmp edx, 0xf
ja case.0x10040513.3
mov edi, dword [esp + 0x1c]
jmp dword [edx*4 + 0x10093fa0]
mov edx, dword [esp + 4]
mov ecx, dword [edx]
mov dword [esp + 0x40], ecx
test ecx, ecx
jns 0x100401e4
neg ecx
mov dword [esp + 0x40], ecx
or dword [esp + 8], 0x10
jmp 0x100401e4
test eax, eax
jle 0x10040407
test byte [esp + 8], 8
je 0x10040553
mov byte [esp + 0x12c], 0x30
mov esi, dword [esp + 0x14]
sub esi, ebx
inc esi
mov eax, esi
dec eax
test eax, eax
jle 0x100410e7
mov esi, eax
mov edi, dword [esp + 0xc]
inc dword [edi + 4]
mov eax, dword [edi]
mov ecx, dword [eax + 4]
mov dword [esp], ecx
call dword [section..00cfg]
lea eax, [esp + 0x12c]
mov ecx, edi
push 1
push eax
call dword [esp + 8]
test al, al
jne 0x1004055a
jmp 0x10040a89
or edx, 1
jmp 0x100401c4
test eax, eax
sets al
mov edx, esi
sub edx, ecx
mov dword [esp + 0x20], edx
setg dl
test al, dl
mov edx, dword [esp + 8]
mov eax, 0
mov dword [esp], ebx
mov ebx, dword [esp + 0x20]
cmove ebx, eax
mov dword [esp + 0x20], ebx
mov ebx, dword [esp]
cmovne ecx, esi
jmp 0x100402b2
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov al, byte [eax]
mov esi, 4
cmp al, 0x6c
je 0x10040708
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0
jmp case.0x10040181.74
mov eax, dword [esp + 0xc]
inc dword [eax + 4]
mov eax, dword [eax]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [section..00cfg]
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0xc]
push 1
push eax
call esi
mov edx, dword [esp + 0x20]
test al, al
jne 0x100402e8
jmp 0x10040a89
mov byte [esp + 0x54], 0x2d
xor eax, eax
inc eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
jmp 0x10040286
mov eax, dword [esp + 4]
movsd xmm0, qword [eax]
movaps xmmword [esp + 0x20], xmm0
add eax, 8
mov dword [esp + 4], eax
movsd qword [esp + 0x40], xmm0
mov edi, ebx
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
add esp, 4
test eax, eax
setne al
mov ecx, 0x10097c3f
mov edx, 0x10097464
cmove edx, ecx
mov ecx, 0x10097b39
mov esi, 0x10096731
cmove esi, ecx
shl al, 5
or al, 0x45
mov dword [esp + 0x54], 0x19
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], esi
mov byte [esp + 0x60], al
movaps xmm0, xmmword [0x10093250]
movups xmmword [esp + 0x64], xmm0
mov dword [esp + 0x74], 2
lea eax, [esp + 0x12c]
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 ecx, dword [esp + 8]
mov ebx, ecx
or ebx, 0x10
test eax, eax
je 0x10040872
movaps xmm0, xmmword [esp + 0x20]
andps xmm0, xmmword [0x10093cd0]
jmp 0x10040877
mov edi, 2
xor ebx, ebx
mov dword [esp + 0x20], 6
add dword [esp + 0x10], edi
mov al, byte [edx]
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x20]
jmp case.0x10040181.74
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 4], ecx
mov dword [esp + 0x40], eax
sub esp, 0x20
xor esi, esi
mov dword [esp + 0x1c], esi
movaps xmm0, xmmword [0x10093ac0]
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
test eax, eax
je 0x10041120
push eax
mov ebx, eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov edi, eax
push esi
push esi
push ebx
push eax
push 0xffffffffffffffff
push dword [esp + 0x54]
push esi
push esi
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov byte [ebx + edi - 1], 0
mov esi, dword [esp]
test esi, esi
je 0x10041162
mov dword [esp + 0x20], edi
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, esi
mov edi, eax
cmovg edi, esi
test esi, esi
cmovle edi, eax
mov byte [esp + 0x12c], 0x20
mov eax, dword [esp + 0x14]
sub eax, edi
test byte [esp + 8], 1
mov dword [esp], eax
jne 0x100407d2
test eax, eax
jg 0x10041181
mov esi, dword [esp + 0xc]
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 0x1004120c
test byte [esp + 8], 1
mov edi, dword [esp]
je 0x1004080a
test edi, edi
jg 0x100411d8
test esi, esi
je case.0x10040513.3
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x10040068
mov eax, dword [esp + 4]
lea ecx, [eax + 8]
mov esi, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov ebx, esi
mov dword [esp + 0x40], esi
mov esi, 6
test edx, edx
jns 0x1004094c
mov dword [esp + 0x3c], ecx
xor eax, eax
mov ecx, ebx
neg ecx
sbb eax, edx
mov ebx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
or dword [esp + 8], 0x10
mov dword [esp + 0x38], 6
mov edx, eax
jmp 0x1004096e
movaps xmm0, xmmword [esp + 0x20]
movaps xmmword [esp + 0x20], xmm0
cmove ebx, ecx
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 esi, ebx
and esi, 0xfffffff7
test ax, ax
cmovle esi, ebx
mov eax, dword [esp]
test eax, eax
mov ebx, 6
cmovns ebx, eax
cmp edi, 0x67
jne 0x10040b45
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 0x1004110c
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov byte [eax + edi], 0
mov dword [esp + 0x50], 0xffffffff
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
push esi
push 8
push ebx
push dword [esp + 0x20]
push edi
call fcn.100105c0
add esp, 0x14
mov ecx, dword [esp + 0x50]
test ecx, ecx
jns 0x10041113
test al, al
jne case.0x10040513.3
jmp 0x10040a89
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
add ecx, 4
xor edx, edx
mov ebx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov esi, 0xb
cmp dword [esp], 0
jne 0x1004095c
mov eax, ebx
or eax, edx
je 0x10041168
mov eax, ebx
or eax, edx
je 0x100409f0
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
xor edi, edi
lea esi, [esp + 0x190]
mov dword [esp + 4], edx
push 0
push dword [esp + 0x20]
push edx
push ebx
call fcn.10050910
mov dword [esp + 0x18], edx
mov ecx, eax
mov edx, eax
imul ecx, dword [esp + 0x1c]
mov eax, ebx
sub ebx, ecx
and ebx, 0xf
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + ebx]
mov byte [esi - 1], cl
dec esi
inc edi
cmp eax, dword [esp + 0x1c]
sbb dword [esp + 4], 0
mov ebx, edx
mov edx, dword [esp + 0x18]
jae 0x10040977
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov edx, esi
mov esi, eax
mov ecx, dword [esp + 0xc]
push dword [esp + 8]
push esi
push dword [esp + 8]
push dword [esp + 0x20]
push edi
call fcn.100105c0
add esp, 0x14
test al, al
jne case.0x10040513.3
jmp 0x10040a89
mov dword [esp + 4], ecx
mov byte [esp + 0x18f], 0x30
xor edi, edi
inc edi
lea edx, [esp + 0x18f]
jmp 0x100409c9
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add eax, 8
mov dword [esp + 0x44], edx
mov ebx, ecx
mov dword [esp + 0x40], ecx
mov esi, 7
mov ecx, eax
jmp 0x1004094c
mov eax, dword [esp + 0xc]
inc dword [eax + 4]
mov eax, dword [eax]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [section..00cfg]
mov ecx, dword [esp + 0xc]
push 1
push 0x10097f56
call esi
mov edx, dword [esp + 0x20]
test al, al
jne 0x100402e9
jmp 0x10040a89
mov eax, dword [esp + 0xc]
inc dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp], ecx
call dword [section..00cfg]
mov ecx, dword [esp + 0xc]
push 1
push 0x10099ed2
call dword [esp + 8]
mov edx, dword [esp + 0x20]
test al, al
jne 0x100402d3
xor ebx, ebx
jmp 0x10040479
test byte [esp + 8], 1
jne 0x10041262
xor eax, eax
inc eax
mov edi, dword [esp + 0x14]
test edi, edi
cmovle eax, edi
dec eax
inc edi
dec edi
cmp edi, 2
jge 0x1004126f
mov esi, eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x14], esi
cmp edx, 2
jne 0x100412a7
mov al, byte [ecx]
lea edx, [esp + 0x40]
mov byte [edx], al
mov edi, dword [esp + 0xc]
inc dword [edi + 4]
mov eax, dword [edi]
mov esi, ecx
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 1
lea eax, [esp + 0x44]
push eax
call ebx
test al, al
je 0x10040a89
add esi, 4
mov ecx, esi
mov eax, dword [esp + 8]
mov dword [esp + 4], ecx
test al, 1
je case.0x10040513.3
mov eax, dword [esp + 0x14]
inc eax
dec eax
cmp eax, 2
jl case.0x10040513.3
mov edi, eax
mov esi, dword [esp + 0xc]
inc dword [esi + 4]
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
push 1
push 0x10099ed2
call ebx
xor ebx, ebx
test al, al
mov eax, edi
jne 0x10040b0d
jmp 0x10040479
movaps xmm0, xmmword [esp + 0x20]
xor eax, eax
cmp edi, 0x64
jle 0x100412b4
cmp edi, 0x66
jne 0x100412d0
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 0x100408dc
and edx, 0xfffffffb
jmp 0x1004011f
mov dword [esp + 0x20], 2
mov bl, 1
xor edi, edi
inc edi
mov edx, dword [esp + 0x10]
jmp case.0x10040181.76
and edx, 0xfffffff7
jmp 0x10040128
mov byte [esp + 0x54], 0x2b
jmp 0x1004062f
mov esi, dword [esp + 0xc]
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 0x10099e70
call edi
test al, al
je 0x10040a89
mov ebx, dword [esp + 0xc]
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 0x100409e3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
mov ecx, ebx
mov esi, ebx
add esi, 3
xor ecx, ecx
test al, al
je 0x10040c71
movzx edx, al
cmp edx, 0x24
je 0x10040c71
movsx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
mov al, byte [esi - 1]
inc esi
jmp 0x10040c1c
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 4], ecx
mov edx, esi
test esi, esi
jns 0x10040144
neg edx
mov ecx, dword [esp + 8]
and ecx, 0xfffffff6
or ecx, 1
mov dword [esp + 8], ecx
jmp 0x10040144
mov eax, dword [esp + 0x80]
cmp dword [eax + ecx*8 - 8], 0x14
je 0x10040fbc
mov eax, dword [eax + ecx*8 - 4]
mov dword [esp + 4], eax
mov al, byte [esi - 1]
jmp 0x100400fe
test edx, edx
jne 0x10040c9f
inc edi
xor edx, edx
jmp 0x10040010
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 4], ecx
mov dword [esp + 0x40], eax
test eax, eax
je case.0x10040513.3
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov dword [eax], ecx
jmp case.0x10040513.3
or edx, 1
mov eax, 8
jmp case.0x100401ad.100
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x1009b2d0
push dword [esp + 8]
push dword [esp + 0x1c]
push eax
push dword [esp + 0x20]
xor ebx, ebx
push eax
call fcn.100105c0
add esp, 0x14
test al, al
jne case.0x10040513.3
jmp 0x10040479
mov dword [esp + 8], eax
mov esi, dword [esp + 0xc]
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 0x10099ed2
call edi
test al, al
jne 0x10040325
jmp 0x10040a89
cmp edi, 0x15
jae 0x1004124d
mov dword [esp + 0x84], edi
xor ecx, ecx
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*8], 0x14
inc ecx
cmp edi, ecx
jne 0x10040d5a
mov eax, dword [ebp + 8]
mov esi, eax
movzx ecx, byte [eax]
cmp ecx, 0x25
je 0x10040d86
inc esi
mov eax, esi
test ecx, ecx
jne 0x10040d70
jmp 0x10040fd1
lea eax, [esi + 2]
mov cl, byte [esi + 1]
cmp cl, 0x25
je 0x10040d70
add esi, 3
xor edx, edx
test cl, cl
je 0x10040db4
movzx ebx, cl
cmp ebx, 0x24
je 0x10040db4
movsx ecx, cl
lea edx, [edx + edx*4]
lea edx, [ecx + edx*2]
add edx, 0xffffffd0
mov cl, byte [eax]
inc eax
inc esi
jmp 0x10040d96
test cl, cl
je 0x10041310
test edx, edx
je 0x10041310
cmp edx, edi
ja 0x10041310
mov ecx, dword [esp + 0x80]
mov dword [esp + 8], ecx
cmp dword [ecx + edx*8 - 8], 0x14
jne 0x10040d70
mov bl, byte [esi - 1]
movzx eax, bl
lea ecx, [eax - 0x2a]
cmp ecx, 6
ja case.default.0x10040dec
jmp dword [ecx*4 + 0x10093d10]
inc esi
jmp 0x10040dde
cmp eax, 0x20
je case.0x10040dec.43
mov eax, ebx
add al, 0xd0
cmp al, 9
ja 0x10040e0e
mov bl, byte [esi]
inc esi
mov eax, ebx
add al, 0xd0
cmp al, 0xa
jb 0x10040e03
cmp bl, 0x2e
jne 0x10040e32
mov bl, byte [esi]
cmp bl, 0x2a
je 0x1004133a
inc esi
mov eax, ebx
add al, 0xd0
cmp al, 9
ja 0x10040e32
mov bl, byte [esi]
inc esi
mov eax, ebx
add al, 0xd0
cmp al, 0xa
jb 0x10040e27
mov eax, dword [esp + 8]
mov dword [eax + edx*8 - 8], 2
movzx ecx, bl
mov dword [esp + 8], 6
cmp ecx, 0x69
jle 0x10040e83
cmp ecx, 0x73
jg 0x10040ec4
cmp ecx, 0x6a
je 0x10040ed6
cmp ecx, 0x6c
jne 0x10040ef2
mov eax, dword [esp + 0x80]
mov dword [eax + edx*8 - 8], 4
lea eax, [esi + 1]
mov bl, byte [esi]
mov dword [esp], 2
cmp bl, 0x6c
je 0x10040ede
jmp 0x10040ef4
cmp ecx, 0x49
je 0x10040ece
xor eax, eax
inc eax
mov dword [esp], eax
mov eax, esi
cmp ecx, 0x4c
je 0x10040ede
cmp ecx, 0x68
jne 0x10040ef2
mov eax, dword [esp + 0x80]
mov dword [eax + edx*8 - 8], 0
lea eax, [esi + 1]
mov bl, byte [esi]
cmp bl, 0x68
jne 0x10040ef4
mov dword [esp], 2
mov dword [esp + 8], 0xe
jmp 0x10040ede
cmp ecx, 0x74
je 0x10040ece
cmp ecx, 0x7a
jne 0x10040ef2
mov dword [esp + 8], 2
xor eax, eax
inc eax
mov dword [esp], eax
mov eax, esi
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 8]
mov dword [ecx + edx*8 - 8], ebx
add esi, dword [esp]
mov bl, byte [eax]
mov eax, esi
movsx ecx, bl
cmp ecx, 0x62
jle 0x10040f19
add ecx, 0xffffff9d
cmp ecx, 0x15
ja case.0x10040f04.104
jmp dword [ecx*4 + 0x10093d2c]
mov ecx, dword [esp + 0x80]
or dword [ecx + edx*8 - 8], 1
jmp case.0x10040f04.99
lea esi, [ecx - 0x45]
cmp esi, 3
jae 0x10040f47
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*8 - 8], 8
mov ecx, dword [esp + 0x80]
cmp dword [ecx + edx*8 - 8], 0x14
jne 0x10040d70
jmp 0x10041325
cmp ecx, 0x53
je 0x10040f9c
cmp ecx, 0x58
je case.0x10040f04.111
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*8 - 8], 0x14
jmp case.0x10040f04.99
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*8 - 8], 0xa
jmp case.0x10040f04.99
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*8 - 8], 0xb
jmp case.0x10040f04.99
mov ecx, dword [esp + 0x80]
cmp dword [ecx + edx*8 - 8], 4
je 0x10040fa3
mov dword [ecx + edx*8 - 8], 9
jmp case.0x10040f04.99
mov ecx, dword [esp + 0x80]
mov dword [ecx + edx*8 - 8], 0xc
jmp case.0x10040f04.99
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x1004048f
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
xor ecx, ecx
inc ecx
cmp edi, 2
cmovae ecx, edi
mov eax, 4
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x12c]
mov dword [edx + eax], esi
mov edx, dword [esp + 0x80]
mov esi, dword [edx + eax - 4]
cmp esi, 0xf
ja case.0x10041004.13
jmp dword [esi*4 + 0x10093d84]
add dword [esp + 0x12c], 4
add eax, 8
dec ecx
jne 0x10040fe6
jmp 0x10040065
add dword [esp + 0x12c], 8
jmp 0x10041013
or edx, 1
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 edx, ecx
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x10040104
mov eax, dword [esp + 0x10]
lea edx, [eax + 1]
mov al, byte [eax]
cmp al, 0x68
jne 0x100410a2
mov dword [esp + 0x20], 0xe
mov edi, 2
xor ebx, ebx
jmp case.0x10040181.76
mov byte [esp + 0x54], 0x20
jmp 0x1004062f
mov al, byte [ecx + 1]
add ecx, 2
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
mov esi, dword [ecx]
add ecx, 4
mov dword [esp + 4], ecx
jmp 0x10040151
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0
xor esi, esi
jmp case.0x10040181.74
mov eax, dword [esp + 4]
mov eax, dword [eax]
movsx ecx, al
shl eax, 0x18
mov dword [esp + 0x40], ecx
jns 0x100410d2
neg ecx
mov dword [esp + 0x40], ecx
or dword [esp + 8], 0x10
mov edx, dword [esp + 4]
jmp 0x100401e4
mov edx, dword [esp + 4]
movzx ecx, byte [edx]
jmp 0x100401e0
xor eax, eax
dec eax
mov dword [esp], eax
jmp 0x10040407
mov eax, dword [esp + 4]
mov eax, dword [eax]
movsx ecx, ax
shl eax, 0x10
jmp 0x100410c1
mov edx, dword [esp + 4]
movzx ecx, word [edx]
jmp 0x100401e0
xor eax, eax
jmp 0x10040911
mov edx, dword [esp + 0x48]
mov byte [edx + ecx], 0
jmp 0x1004091d
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x459
jne 0x10041226
cmp dword [esp], 0
je case.0x10040513.3
mov eax, dword [esp]
cmp eax, 0x1a
mov edx, 0x1a
cmovb edx, eax
mov ecx, dword [esp + 0xc]
push dword [esp + 8]
push dword [esp + 0x18]
call fcn.1007bea0
add esp, 8
jmp 0x100409e3
push edi
jmp 0x10040813
mov dword [esp + 4], ecx
xor eax, eax
mov ecx, dword [esp + 0xc]
mov edx, 0x1009b2d0
push dword [esp + 8]
push esi
jmp 0x10040cfb
test byte [esp + 8], 8
je 0x10041190
mov byte [esp + 0x12c], 0x30
mov eax, dword [esp + 0x14]
sub eax, edi
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x14], eax
test eax, eax
jle 0x1004122e
mov esi, dword [esp + 0xc]
inc dword [esi + 4]
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esp + 0x12c]
mov ecx, esi
push 1
push eax
call ebx
test al, al
mov esi, dword [esp + 0x20]
jne 0x1004119b
jmp 0x1004120c
inc edi
mov eax, edi
dec eax
test eax, eax
jle 0x10041239
mov edi, eax
mov esi, dword [esp + 0xc]
inc dword [esi + 4]
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esp + 0x12c]
mov ecx, esi
push 1
push eax
call ebx
test al, al
mov esi, dword [esp + 0x20]
jne 0x100411d9
test esi, esi
je 0x10040a89
push dword [esp + 0x20]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp 0x10040a89
xor eax, eax
inc eax
jmp 0x10040769
xor eax, eax
dec eax
mov dword [esp], eax
jmp 0x100407d2
cmp dword [esp + 0x20], 0
je case.0x10040513.3
push dword [esp + 0x20]
jmp 0x10040813
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_RELEASE_ASSERT_number___20_
int3
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x14]
jmp 0x10040ab9
mov ecx, dword [esp + 0xc]
inc dword [ecx + 4]
mov dword [esp], eax
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, dword [esp + 0xc]
push 1
push 0x10099ed2
call ebx
mov edx, esi
xor ebx, ebx
test al, al
mov eax, dword [esp]
jne 0x10040aa9
jmp 0x10040479
test edx, edx
je 0x10040ac6
jmp 0x10040af8
cmp edi, 0x45
je 0x100412d9
cmp edi, 0x46
je 0x10040b5e
cmp edi, 0x47
je 0x100408b2
jmp 0x10040911
cmp edi, 0x65
jne 0x10040911
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 0x100408dc
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
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH_Bad_format_string_
int3
mov dword [sym.mozglue.dll_gMozCrashReason], str.MOZ_CRASH__
int3